2015-01-05 22 views
11

Sto lavorando ai miei test di unità e mi sembra di fare qualcosa di sbagliato. Ho un oggetto 'main' che ha molti rapportiEmber-cli unit test con 'bisogni' delle relazioni

author: belongsTo('person', { async: true }), 
title: attr('string'), 
category: belongsTo('category', { async: true }), 
impact: belongsTo('impact', { async: true }), 
status: attr('string'), 
createdDate: attr('moment'), 
submittedDate: attr('moment'), 
authorOrg: belongsTo('organization', { async: true }), 
locations: hasMany('location', { async: true }), 
audits: hasMany('audit', { async: true }) 

E ogni volta che lavoro sui test di unità per i suoi elementi correlati (person, category, impact), sto avendo a riprodurre tutti i valori needs che il mio oggetto "principale" ha. Semplicemente non mi sembra giusto per la mia posizione prova di unità di bisogno category quando si preoccupa solo di una stringa per il suo nome e il suo rapporto di nuovo con l'oggetto 'main'

// location/model-test.js 
import { 
    moduleForModel, 
    test 
} from 'ember-qunit'; 

moduleForModel('location', 'Location', { 
    // Specify the other units that are required for this test. 
    needs: ['model:main', 'model:person', 'model:category', 
     'model:impact', 'model:organization', 'model:location'] 
}); 

Sto facendo qualcosa di sbagliato o c'è un modo migliore per costruire i miei test unitari per gestire le relazioni?

Sono sulla brace-cli 0.1.5, 1.9.1 brace, e braci-dati Beta 14

risposta

1

ho fatto ricorso alla definizione di una funzione wrapper che aggiunge un identificatore per l'etichetta del modulo e poi io uso questo funzione comfort ogni volta che voglio un nuovo modulo:

var anotherModule = function(suffix) { 
    moduleForModel('location', 'Location - ' + suffix, { 
    needs: ['model:main', 'model:person', 'model:category', 
     'model:impact', 'model:organization', 'model:location'] 
    }); 
}; 

anotherModule("module 1"); 
test("test 1.1", function() { }); 
test("test 1.1", function() { }); 

anotherModule("module 2"); 
test("test 2.1", function() { });