Я новичок в написании модульных тестов и нуждаюсь в некоторой помощи, проверяющей часть функции.Ед. Изм. С момента. Js
Моя функция выглядит следующим образом ...
getData() {
return this.parameters.map(p => {
return {
name: p.name,
items: p.items.map(item => {
const toTime = item.hasOwnProperty('end') ? moment.utc(item.end._d).unix() : null;
const fromTime = item.hasOwnProperty('start') ? moment.utc(item.start._d).unix() : null;
return {
id: item.id,
fromTime: fromTime,
toTime: toTime,
};
}),
};
});
}
и до сих пор мой тест выглядит следующим образом (жасмин)
describe('getData()', function() {
it('should return json data', function() {
$ctrl.parameters = [{
name: 'test',
items: [{
id: 1,
fromTime: null,
toTime: null
}, {
id: 13,
fromTime: null,
toTime: null
}]
}];
expect($ctrl.getData()).toEqual([{
name: 'test',
items: [{
id: 1,
fromTime: null,
toTime: null
}, {
id: 13,
fromTime: null,
toTime: null
}]
}]);
});
});
Этот тест работает/мимоходом, но, как вы можете видеть, я Я не тестирую троичный if/else, который использует Moment.js. В основном то, что делает trernary, проверяет, содержит ли элементы свойство start
/end
, и если это так, преобразуйте это значение в временную метку эпохи/unix и назначьте его либо toTime
, либо fromTime
. Поэтому, если элементы имеют свойство, называемое end с значением 'Sat Oct 31 2015 00:00:00 GMT+0000 (GMT)'
, тогда оно будет преобразовано в '1446249600'
и присвоено toTime
Надеюсь, это объяснит это! Я не уверен, как написать тест для него и буду признателен за любую помощь/предложения.
Спасибо! Работает. И спасибо за образец тоже! –