var assert = require('assert'); describe('mocha', function() { describe('#indexOf()', function() { it('mocha test', function() { var EQUAL = '0', RIGHT = '1', SUCCESS = 'OK', ERROR = 'ERROR'; // 日期相等 var result1 = comparisonDate('2017-11-11', '2017-11-11'); assert.equal(result1.state, SUCCESS); assert.equal(result1.content, EQUAL); // 开始日期小于结束日期 var result2 = comparisonDate('2017-11-11', '2017-11-12'); assert.equal(result1.state, SUCCESS); assert.equal(result1.content, RIGHT); // 开始日期大于结束日期 var result3 = comparisonDate('2017-11-12', '2017-11-11'); assert.equal(result1.state, ERROR); // 开始日期出错 var result4 = comparisonDate('2017-11-1', '2017-11-11'); assert.equal(result1.state, ERROR); // 结束日期出错 var result5 = comparisonDate('2017-11-1', '3017-11-11'); assert.equal(result1.state, ERROR); }); }); }); function comparisonDate( begin_date, end_date ) { const EQUAL = 0, RIGHT = 1, SUCCESS = 'OK', ERROR = 'ERROR', dateReg = /^[2]d{3}-[01]d-[0123]d$/; const data = { state: ERROR, msg: '', content: '日期出错' } if ( typeof begin_date !== 'string' || begin_date === '' || !dateReg.test( begin_date ) ) { data.msg = '参数begin_date出错'; return data; } if ( typeof end_date !== 'string' || end_date === '' || !dateReg.test( end_date ) ) { data.msg = '参数end_date出错'; return data; } try { const beginTimestamp = new Date(begin_date).getTime(); const endTimestamp = new Date(end_date).getTime(); // 开始日期小于结束日期 if ( beginTimestamp > endTimestamp ) { data.msg = '开始时间大于结束时间'; return data; } // 开始日期等于结束日期 if ( beginTimestamp === endTimestamp ) { data.state = SUCCESS; data.content = EQUAL.toString(); return data; } data.state = SUCCESS; data.content = RIGHT.toString(); return data; } catch ( err ) { return data; } }