我如何为 angularJs 工厂编写单元测试

How can I write a unit test for angularJs Factory

编辑:(添加测试代码)

嗨,我有这个工厂,它没有任何函数定义。我不知道如何为它编写单元测试(我看到了很多示例,但仍然找不到方法来做如果您对此有任何建议或帮助,我将不胜感激) 我的工厂:

MyApp.factory('params', ['$rootScope', function ($rootScope) {
    // supported languages
    var params = {
        layout: {
            pageAutoScrollOnLoad: 2000
            pageSidebarClosed: false, 
            pageBodySolid: false, 

        },
        layoutImgPath: Metronic.getAssetsPath() + 'app/img/',
        layoutCssPath: Metronic.getAssetsPath() + 'app/css/'
    };
    $rootScope.params = params;
    return params;
}]);

正如@MoLow 提出的答案,我尝试做完全相同的事情。

describe('params', function () {
var params;

beforeEach(module('params'));
beforeEach(inject(function (_params_) {
    params = _params_;
}));

it('Should ', function () {
    expect(params).to.be.a('Object');
 });

});

。但是我有这个错误:

TypeError: undefined is not an object

这意味着参数是 undefined.I 不知道为什么。我需要帮助来解决这个问题

describe('params', function () {
    var params;

    beforeEach(module('params'));
    beforeEach(inject(function (_params_) {
        params = _params_;
    }));

    it('Should ', function () {
        expect(params).to.be.a('Object');
    });

});

如果您使用 karma,请记住在加载测试时将所有依赖项 (Metronic) 包含在 karma.conf.js 文件中。