當單元測試一個Angular工廠(Karma + Jasmine)時,如何將stub依賴關係注入被測試工廠?單元測試有依賴關係的AngularJS工廠
這裏是我廠:
mod = angular.module('myFactoryMod', []);
mod.factory('myFactory', [
'$log', 'oneOfMyOtherServices', function($log, svc) {
return makeSomethingThatDoesSomethingWithTheseDependencies($log, svc);
}
]);
oneOfMyOtherServices
實例我廠的時候是必要的。
這裏是我的測試:
it('can get an instance of my factory', function() {
var oneOfMyOtherServicesStub;
angular.mock.module('myFactoryMod');
oneOfMyOtherServicesStub = {
someVariable: 1
};
//****How do I get my stub in my target? ****
angular.mock.inject(['myFactory', function(target) {
expect(target).toBeDefined();
}
]);
})
注:我知道$controller
允許這個控制器,但我沒有看到工廠的等價物。
是的,我認爲選擇1是要走的路。謝謝! –
我想將myFactory注入到所有測試中。它可以在beforeEach中完成嗎?我試過,但它沒有工作... –
感謝您的回答+1。爲了完整性,還可以爲選項#2添加代碼示例。 – klode