我有一项服务将我的其他几个服务作为依赖项。我如何模拟它进行单元测试?
myApp.factory('serviceToTest',
['serviceDependency',
function(serviceDependency) {
return function(args) {
return cond(args) ? serviceDependency() : somethingElse();
};
}
]);
在上面的示例中,我想模拟出来,serviceDependency
以便验证它是否被调用。我怎样才能做到这一点?
我可以在测试中执行以下操作:
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);
});
});
});
这适用于需要模拟的测试,但它会影响随后所有其他测试的状态,这显然是一个问题。