Sono nuovo per le prove di unità e cerco di capire le cose. Sto facendo del mio meglio per seguire questo tutorial: http://www.yearofmoo.com/2013/01/full-spectrum-testing-with-angularjs-and-testacular.html#testing-filters. Nella mia app AngularJS ho un filtro che devo testare. Ho installato Node, Testacular e Jasmine e funzionano correttamente. Il filtro che sto cercando di testare è piuttosto semplice:Test di presenza del filtro in angolare
myApp.filter('bill_ship', function() {
return function (userData) {
var output = "---";
switch (userData) {
case "0":
output = "Billing";
break;
case "1":
output = "Shipping";
break;
}
return output;
}
});
pensavo di avere la mia prova impostato correttamente, ma fallisce in modo coerente.
describe("Unit Testing: Filters - ", function() {
beforeEach(angular.mock.module('prismApp', ['bill_ship']));
//BillShip Filter
it('should have a bill-ship filter: ', inject(function($filter){
expect($filter('bill_ship')).not.toEqual(null);
}));
});
non riesce con questo messaggio: Errore: argomento 'fn' non è una funzione, ha ottenuto stringa dal bill_ship.
Quindi ... dove sto facendo questo sbagliato?
'bill_ship' è anche il nome del modulo in cui si trova il filtro' bill_ship'? Se il filtro si trova nel modulo 'prismApp', non dovresti passare' ['bill_ship'] 'come secondo parametro a' angular.mock.module'. –
L'app Angolare si trova in un file separato dal filtro: var myApp = angular.module ("prismApp", []); Il filtro è dichiarato esattamente come mostrato. Se lascio il secondo parametro, mi viene in mente un provider sconosciuto: Errore: provider sconosciuto: bill_shipFilterProvider <- bill_shipFilter – MBielski
Puoi provare a usare 'beforeEach (module ('prismApp'));' invece? Questo è il modo in cui abbiamo il beforeEach per il corretto funzionamento dei test dei filtri - la funzione 'it (...' sembra corretta. –