Ich habe einen Dienst, der mehrere meiner anderen Dienste als Abhängigkeit nimmt. Wie kann ich es für einen Komponententest verhöhnen?Mocking mein eigener Dienst in einem Komponententest
myApp.factory('serviceToTest',
['serviceDependency',
function(serviceDependency) {
return function(args) {
return cond(args) ? serviceDependency() : somethingElse();
};
}
]);
Im obigen Beispiel möchte ich serviceDependency
so kann ich, dass es genannt wurde überprüfen verspotten. Wie kann ich das machen?
konnte ich nur folgend im 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);
});
});
});
Dies funktioniert für den Test in Ordnung, die den Schein braucht, aber es wirkt mich dann den Zustand aller anderen Tests, die folgen, was offensichtlich ein Problem.
In Ihrem Test wie erhalten Sie die Instanz von ServiceToTest? –
@RoyTruelove OP aktualisiert –