【发布时间】:2016-02-29 09:52:32
【问题描述】:
我正在尝试使用 TDD 套件编写闰年算法。 这是我第一次真正尝试使用 TDD。
这是规范文件中的代码。
var Year = require('./leap');
describe('Leap year', function() {
it('is not very common', function() {
var year = new Year(2015);
expect(year.isLeap()).toBe(false);
});
it('is introduced every 4 years to adjust about a day', function() {
var year = new Year(2016);
expect(year.isLeap()).toBe(true);
});
it('is skipped every 100 years to remove an extra day', function() {
var year = new Year(1900);
expect(year.isLeap()).toBe(false);
});
it('is reintroduced every 400 years to adjust another day', function() {
var year = new Year(2000);
expect(year.isLeap()).toBe(true);
});
这是到目前为止leap.js文件中的代码
var leapYear = function() {};
leapYear.prototype.isLeap = function(year) {
if (year % 4 != 0) {
return true;
}
}
module.exports = leapYear;
我不断得到:
失败:
1) 闰年并不常见 信息: 预期为真为假。 堆栈跟踪: 错误:预期 true 为 false。 在空。
2) 每 100 年跳过闰年以删除额外的一天 信息: 预期为真为假。 堆栈跟踪: 错误:预期 true 为 false。 在空。
在 0.014 秒内完成 4 次测试,4 次断言,2 次失败,0 次跳过
有什么想法吗?
【问题讨论】:
-
在
else条件下不返回任何内容 -
您只考虑了 3 条规则之一,请考虑
if (year % 4) /* not leap year*/。两个去。 ;-)
标签: javascript algorithm tdd jasmine-node leap-year