単体テストを書くのが初めてで、関数の一部をテストするための助けが必要です。moment.jsを使った単体テスト
My機能は、このようになります...
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
}]
}]);
});
});
、しかし、あなたが私を見ることができるように、この(ジャスミン)のように見えますMoment.jsを使用している場合は、3項のif/elseをテストしていません。基本的には、項目にstart
/end
というプロパティが含まれているかどうかを確認し、存在する場合は、その値をepoch/unixタイムスタンプに変換し、toTime
またはfromTime
のいずれかに割り当てます。項目は'Sat Oct 31 2015 00:00:00 GMT+0000 (GMT)'
の値で終わりというプロパティを持っていたのであれば、それは'1446249600'
に変換し、それを説明するtoTime
願わくばに割り当てられます!私はそれのためのテストを書く方法がわからないし、助けや提案を感謝します。
ありがとうございました!その働き。そしてサンプルもありがとう! –