Ho un servizio che accetta molti dei miei altri servizi come dipendenza. Come posso deriderlo per un test unitario?Mocking il mio servizio in un test di unità
myApp.factory('serviceToTest',
['serviceDependency',
function(serviceDependency) {
return function(args) {
return cond(args) ? serviceDependency() : somethingElse();
};
}
]);
Nell'esempio di cui sopra, voglio prendere in giro fuori serviceDependency
modo che io possa verificare che è stato chiamato. Come lo posso fare?
ho potuto solo effettuare le seguenti operazioni nel test:
describe("Services", function() {
describe('serviceToTest', function() {
myApp.factory('serviceDependency', function() {
var timesCalled = 0;
return function() {
return timesCalled++;
}
});
it('should do foo', inject(function(serviceToTest, serviceDependency) {
serviceToTest(["foo", "bar", "baz"]);
expect(serviceDependency()).to.equal(1);
});
});
});
Questo funziona bene per il test che ha bisogno del finto, ma poi colpisce lo stato di tutte le altre prove che seguono, che è ovviamente un problema.
Nel test come si ottiene l'istanza di serviceToTest? –
@RoyTruelove OP aggiornato –