Unit testing Angularjs向工厂注入$resource用于测试jasmine
我正在编写我的单元测试,以测试如下开发的工厂Unit testing Angularjs向工厂注入$resource用于测试jasmine,unit-testing,angularjs,jasmine,Unit Testing,Angularjs,Jasmine,我正在编写我的单元测试,以测试如下开发的工厂 angular.module("MyApp.Factory",[]).factory("factory",function($resource, baseUrl) { return { someService: function () { return $resource(baseUrl + "/someUri"); } }; }); 茉莉花规格相同 describe("My
angular.module("MyApp.Factory",[]).factory("factory",function($resource, baseUrl) {
return {
someService: function () {
return $resource(baseUrl + "/someUri");
}
};
});
茉莉花规格相同
describe("My App Factory Tests", function () {
var $factory;
beforeEach(function () {
module("MyApp.Factory");
inject(function (factory) {
$factory = factory;
});
});
it("Factory must be defined", function () {
expect($factory).toBeDefined();
});
});
但是,我在jasmine html测试页面中遇到了以下错误
错误:未知提供程序:$resourceProviderngResource
在单独的模块中定义。请检查文件
换句话说,您必须包括
并将ngResource
依赖项添加到MyApp.Factory
module-angular.module(“MyApp.Factory”,“ngResource”])
另外,在规范中,您可以用下划线环绕服务名称,这样我们就可以在本地分配与服务同名的局部变量。例如:
var factory;
beforeEach(function () {
module("MyApp.Factory");
inject(function (_factory_) {
factory = _factory_;
});
});
根据angularjs编码标准,$
不应用于命名自定义指令。为单元测试实例化工厂的最简单方法是什么?只需将其注入规范,例如:`it(“DotheMagic”,inject(function(myService){expect(myService.trick()).toBe(true);});