如何在AngularJS的Karma / Jasmine单元测试中使用时刻Js?

问题描述 投票:0回答:1

我在AngularJS项目中使用momentJS。

我正在尝试编写单元测试,并且我不断遇到问题。

这是我的配置文件:

// list of files / patterns to load in the browser
files: [
    // './bower_components/moment/min/moment.min.js',
    // './bower_components/moment-timezone/builds/moment-timezone.min.js',
    // './bower_components/moment/min/moment-with-locales.js',
    // './bower_components/moment-timezone/builds/moment-timezone-with-data.js',
    './bower_components/moment/moment.js',
    './bower_components/moment-timezone/moment-timezone.js',

    './source/builds/vendors.js',
    './node_modules/angular-mocks/angular-mocks.js',
    './source/builds/vendors.css',
    './source/builds/app.css',
    './source/builds/bundle.js',
    './source/js/**/*.spec.js'
],

我一直收到这个错误:TypeError:moment(...)。year(...)。week不是函数

我不确定如何修复错误。

angularjs unit-testing momentjs karma-jasmine
1个回答
0
投票

为了暂时运行单元测试我们需要检查的是当前.js和angular-moment.js文件要包含在配置文件中

files: [
    '../bower_components/moment/moment.js',
    '../bower_components/angular-moment/angular-moment.js',
]

之后在spec文件上

describe('Moment Tests', function() {
    var _moment;
    beforeEach(inject(function(moment) {
        _moment: moment
    }));
});


describe('Test for date by provided format', function (){

    it('should return date by provided format', function() {
        var expectedYear = _moment(new Date().year());
        expect(2019).toEqual(expectedDate);
    });
});

希望这会有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.