首页 > 解决方案 > AngularJS - 如何编写包含 momentjs 库的单元测试?

问题描述

我正在用 AngularJS 1.5.3 编写一个应用程序。

我想测试我的一项服务,并且想在测试中使用 momentjs。

测试示例:

it('should have the correct number of weeks in the calendar month for Feb', function () {
    var dateString = '2018-02-01';
    Calendar.data.currentCalendarMonth = moment(dateString).startOf('month');
    Calendar.buildMonth();
    var start = moment(dateString).startOf('month').isoWeek();
    var end = moment(dateString).endOf('month').isoWeek();
    expect(end - start + 1).toBe(Object.keys(Calendar.data.weeks).length);
});

当我运行测试时,我收到此错误:

TypeError: moment(...).year(...).week is not a function

我试图在我的业力配置文件中导入 momentjs,但没有效果。

编辑:时刻在我的凉亭配置文件中被列为依赖项。我试图将时刻文件放在我的 karma 配置文件之前,但这对结果没有帮助。moment(...).year(...).week 用于我的日历服务,但不在我的单元测试中。

标签: angularjsmomentjskarma-jasmine

解决方案


推荐阅读