나는 다음과 같은 간단한 기능이 있습니다쓰기 테스트 케이스
Error: From date (2014/09/13-10:00:00) is after To date (2014/09/12-09:00:00).Enter a valid date range.
: 나는 그것을 호출하는 경우
var moment = require('moment-timezone');
exports.splitIntoDays = function(from,to) {
var timeIntervals = [];
var interval = {};
var start = moment(from);
var end = moment(to);
if(start.isAfter(end)) {
throw new Error('From date ('+from+') is after To date ('+to+').Enter a valid date range.');
}
var initial = start;
console.log("Before loop"+initial.format("YYYY/MM/DD-HH:mm:ss")+" "+initial.diff(end,'hours'));
while(end.diff(initial,'hours') > 24) {
timeIntervals.push({"from" : initial.format("YYYY/MM/DD-HH:mm:ss"), "to" : initial.add(24,'hours').format("YYYY/MM/DD-HH:mm:ss")});
initial = initial.add(1,'hours');
}
timeIntervals.push({"from" : initial.format("YYYY/MM/DD-HH:mm:ss"), "to" : end.format("YYYY/MM/DD-HH:mm:ss")});
console.info(JSON.stringify(timeIntervals));
return timeIntervals;
}
그래서, splitIntoDays('2014/09/13-10:00:00','2014/09/12-09:00:00')
, 나는 다음과 같은 응답을받을를 나는 모카 (Mocha)와 차이 (Chai)를 사용하여 다음과 같은 시험을 썼다 :
var expect = require("chai").expect;
var utils = require("../Utils.js");
describe("Utils", function(){
describe("#splitIntoDays()", function(){
it("equal", function() {
var results = utils.splitIntoDays('2014/09/13-10:00:00','2014/09/12-09:00:00');
expect(utils.splitIntoDays('2014/09/13-10:00:00','2014/09/12-09:00:00')).to.throw(new Error('From date (2014/09/13-10:00:00) is after To date (2014/09/12-09:00:00).Enter a valid date range.'));
});
});
});
그러나 이것은 실패했다. 실수를 지적하는 데 나를 도울 수 있습니까?
describe("Utils", function(){
describe("#splitIntoDays()", function(){
var error = new Error('From date (2014/09/13-10:00:00) is after To date (2014/09/12-09:00:00).Enter a valid date range.');
it("equal", function() {
expect(function(){
utils.splitIntoDays('2014/09/13-10:00:00','2014/09/12-09:00:00');
}).to.throw(error);
});
});
});
그리고 난 다음 무엇입니까 : 당신은 여기에 대한 답을 찾을 수 있습니다
AssertionError: expected [Function] to throw 'Error: From date (2014/09/13-10:00:00) is after To date (2014/09/12-09:00:00).Enter a valid date range.' but 'Error: From date (2014/09/13-10:00:00) is after To date (2014/09/12-09:00:00).Enter a valid date range.' was thrown
[모카/차이가 발생하지 에러를 잡기 expect.to.throw]의 중복 가능성 (http://stackoverflow.com/questions/21587122/mocha-chai-expect-to-throw-not-catching- thrown-errors) – Louis