使用Mocha和Momentjs进行单元测试
Unit testing with Mocha and Momentjs
我有一个函数,我正在尝试使用moment
的Mocha进行单元测试。
function makeRange(timeagoMinutes) {
var endDate = moment().toISOString();
var startDate = moment().subtract(timeagoMinutes, 'm').toISOString();
return startDate + ',' + endDate;
}
这是我到目前为止所拥有的,但我很难弄清楚如何处理moment
。如果我调用makeRange(40)
并运行测试,每次字符串都是不同的。
如何获取当前时间(即moment().toISOString()
)
var rewire = require('rewire');
var controller = rewire('../thecontroller.js');
var moment = require('moment');
describe.only('makeRange', function() {
var makeRange;
beforeEach(function() {
makeRange = controller.__get__('makeRange');
});
it('should return a string with a start date and end date', function() {
//
});
});
您正在使用rewire
,因此您可以模拟控制器中所需的moment
模块,以确保使用已知的日期/时间:
describe.only('makeRange', function () {
var makeRange;
beforeEach(function () {
var momentMock = function () {
return moment('2016-08-31T09:00:00Z');
};
controller.__set__("moment", momentMock);
makeRange = controller.__get__("makeRange");
});
it('should return a string with a start date and end date', function () {
expect(makeRange(40)).to.equal('2016-08-31T08:20:00.000Z,2016-08-31T09:00:00.000Z');
});
});
相关文章:
- 我的单元测试选项是什么
- 如何在Angular单元测试中从另一个控制器的rootScope将方法添加到rootScope中
- 使用量角器的当前url单元测试的getTitle
- AngularJS指令单元测试中未定义的函数
- 如何在ember单元测试中模拟_super()方法
- 单元测试依赖关系没有被嘲笑
- 为什么不'当单元测试出现解析错误时,我的因果报应测试会失败
- 在node.js中编写单元测试的最佳方式是什么
- Ng点击-如何进行行为单元测试
- Jasmine单元测试在监视服务方法时失败
- Angular 2和服务单元测试
- 在我的目录结构中,将单元测试助手源文件放在哪里
- 如何对CSS transitionEnd事件后执行的JavaScript进行单元测试
- 使用Node.js在应用程序引擎上进行本地单元测试
- 我应该如何衡量JS的单元测试覆盖率?我可以'我对jscoverage不满意
- 如何使用KARMA对React JSX ES6代码进行单元测试
- 如何在单元测试中将存储注入Ember.Service
- 单元测试:使用酶模拟父组件中子组件的点击事件
- Javascript单元测试
- 使用Mocha和Momentjs进行单元测试