我正在编写我的单元测试以测试工厂开发如下
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测试页面中的以下错误
Error: Unknown provider: $resourceProvider <- $resource <- eligibilityService
请建议正确的方法来测试工厂
答案 0 :(得分:3)
ngResource
在单独的模块中定义。请查看文档http://docs.angularjs.org/api/ngResource
换句话说,您必须包含<script src="angular-resource.js">
并将ngResource
依赖项添加到MyApp.Factory
模块 - angular.module("MyApp.Factory", ["ngResource"])
。
PS。在规范中,您可以用下划线包围服务名称,以便我们可以在本地分配与服务同名的本地变量。例如:
var factory;
beforeEach(function () {
module("MyApp.Factory");
inject(function (_factory_) {
factory = _factory_;
});
});
根据angularjs编码标准$
不应用于命名自定义指令。