Я пытаюсь написать алгоритм високосного года с набором TDD. Это моя первая реальная попытка работать с TDD.Как написать алгоритм високосного года в Javascript с 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) Високосный год не очень часто сообщение : Ожидается, что значение false. Stacktrace: Ошибка: ожидается, что true будет ложным. у null.
2) Високосный год пропускается каждые 100 лет, чтобы удалить дополнительный день Сообщение: Ожидается, что оно будет ложным. Stacktrace: Ошибка: ожидается, что true будет ложным. у null.
Законченный в 0.014 секунд 4 тестов, 4 утверждений, 2 неудачи, 0 пропущено
Любые идеи?
не возвращается ничего в состоянии 'else' – charlietfl
Вы учли только один из 3 правил, считайте' if (year% 4)/* не високосный год */'. Два идти. ;-) – RobG