【问题标题】:How to unit test a factory with Jasmine and Angular如何使用 Jasmine 和 Angular 对工厂进行单元测试
【发布时间】:2014-06-04 19:03:10
【问题描述】:

我已经搜索了互联网,但无法找到我需要的东西。基本上我有一个工厂声明如下:

angular.module('puFactories').factory('RestFactory', function ($http, $q) {
return {
    getAccountInfo: getAccountInfo,
    getFriendsInfos: getFriendsInfos
}
}

'puFactories' 模块没有依赖关系。我想要的是在茉莉花单元测试中创建这个工厂的一个实例。我尝试了以下方法:

describe('Unit: RestFactory', function() {
    var factory;
    beforeEach(module('puFactories'));
    beforeEach(inject(function(_RestFactory_){
        factory = _RestFactory_;
    }));
}

但是在运行 karma 时出现以下异常:

Error: [$injector:unpr] Unknown provider: RestFactoryProvider <- RestFactory

编辑:

好的,看来我需要澄清一下上面的代码。我的模块已正确声明,整个应用程序正在运行。我只是将工厂和控制器拆分为不同的文件。工厂也在我的应用程序中返回和对象我已经简化了代码,因为它不相关。

编辑 2:

我也试过

beforeEach(inject(function($injector){
        factory = $injector.get('RestFactory');
    }));

只是返回的对象是未定义的。

【问题讨论】:

    标签: angularjs unit-testing jasmine karma-runner


    【解决方案1】:

    好吧,在花了太多时间解决这个项目的问题之后,我决定从一个干净的开始。我已经在这个项目中包含了所有需要的框架。我已将它添加到 github 中的 repo 以便将来更容易使用,因为配置所有这些需要相当长的时间。这是回购:https://github.com/fatalerrorbg/MobileAppBase

    【讨论】:

    • 嗯,这是一个有趣的减号,我希望至少能发表评论。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-14
    • 1970-01-01
    • 2019-02-21
    相关资源
    最近更新 更多