gpt4 book ai didi

unit-testing - Angularjs 将 $resource 注入(inject)工厂以使用 jasmine 进行测试

转载 作者:行者123 更新时间:2023-12-04 04:43:09 24 4
gpt4 key购买 nike

我正在编写单元测试来测试如下开发的工厂

angular.module("MyApp.Factory",[]).factory("factory",function($resource, baseUrl) {
return {
someService: function () {
return $resource(baseUrl + "/someUri");
}
};
});

Jasmine 规范相同
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
请建议正确的方法来测试工厂

最佳答案

ngResource在单独的模块中定义。请查看文档 http://docs.angularjs.org/api/ngResource
换句话说,您必须包含 <script src="angular-resource.js">并添加 ngResourceMyApp.Factory 的依赖模块 - angular.module("MyApp.Factory", ["ngResource"]) .

附言。在规范中,您可以用下划线包围服务名称,以便我们可以在本地分配与服务同名的局部变量。例如:

var factory;

beforeEach(function () {

module("MyApp.Factory");

inject(function (_factory_) {
factory = _factory_;
});

});

根据angularjs编码标准 $不应用于命名自定义指令。

关于unit-testing - Angularjs 将 $resource 注入(inject)工厂以使用 jasmine 进行测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18589782/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com