У меня есть метод, который вызывается с помощью d3 timer
. Каждый раз, когда вызывается метод, он генерирует объект с парой значений. Одно из значений со временем увеличивается. Я хотел бы написать тест, чтобы проверить, находятся ли значения в порядке возрастания или нет (т.е. увеличиваются со временем или нет).
Итак, чтобы решить эту проблему, в моем тесте я подписываюсь на эмиттер событий и внутри подписки я помещаю полученный объект в локальный массив. И затем, я ожидаю, что array[i]
будет меньше, чем array[i+1]
. Я думаю, что моя логика совершенно верна, но я не уверен, почему я получаю сообщение об ошибке от Жасмин, говоря, что the spec has no expectations
, хотя она у меня есть.
Вот код:
let x = d3.timer((elapsed) => {
this.method(); // call the function
if(elapsed >= 500) {
x.stop(); // stops the timer.
}
});
method(elapsed) {
// do something
if(elapsed > 500) {
this.output.emit({x: somevalue, y: somevalue, f: increasingvalue });
}
}
Спецификация жасмина:
it('my spec', inject([JumpService], (service: JumpService) =>{
array = [];
//service calls the method
service.output.subscribe(e => {
array.push(e);
// A console statement here will give me the length and the object pushed.
for(let i = 0; i< array.length - 1; i++) {
expect(array[i].f).toBeLessThan(array[i+1].f);
}
});
}));
Я здесь что-то не так делаю? Как я могу справиться с подобным сценарием? Пожалуйста, направьте меня в правильном направлении.
Спасибо.
it('does things', () => () => {
- person dudeNumber4   schedule 10.03.2020