В мокко у меня есть два теста:
- первый тест, если метод asyn c получает значение, как следует:
- второй тест, если при получении значение, этот первый метод имеет «кэшированное» (у меня есть внутренний механизм для этого) значение, поэтому также asyn c.
Поэтому мне нужно убедиться, что мой первый тест полностью done (имеется в виду, что мой первый метод asyn c для получения значения полностью готов) перед выполнением второго.
Вот мой код:
it('Should return a valid value ', () => {
myService.check('value', (success) => {
expect(success.isValid)
});
})
it('Should put the value in cache', () => {
return myService.getCached('value').then(result => {
expect(result).to.be.ok;
})
})
Проблема в том, что второе 'it' запускается до того, как будет выполнено первое ...
Я могу использовать тайм-ауты Например:
it('Should return a valid value ', () => {
myService.check('value', (success) => {
expect(success.isValid)
});
}).timeout(5000)
it('Should put the value in cache', () => {
return myService.getCached('value').then(result => {
expect(result).to.be.ok;
})
})
Но мне это не нравится, это не на 100% надежно, и я считаю, что между двумя тестами нам не следует ждать с фиксированным значением времени!
Есть ли лучший способ сделать это?