Я хочу смоделировать / заглушить разрешение метода класса, который возвращает обещание при тестировании другого метода того же класса.Я использую jest
.
У меня есть следующий класс Blah
, из которого я хочу протестировать метод foo()
:
export default class Blah {
foo () {
this.bar().then(result => {
// some logic here
})
}
bar () {
return new Promise(function (resolve, reject) {
// fetches some stuff over the network
resolve('hello world')
})
}
}
Поскольку foo()
использует bar()
- метод возврата обещаний, который работает по сети - я хотел бы посмеяться над решением bar()
;допустим, чтобы он разрешился what up
.
Допустим, тест будет выглядеть примерно так:
import Blah from './blah'
test('foo() - bar() resolves "what up"', () => {
const blah = new Blah()
// mock blah.bar() so that is resolves "what up"
// {some assertions on blah.foo() here}
})
Я впервые работаю с jest
, и я прочиталдокументы, но мне все еще трудно обернуть голову вокруг этого случая.
Как я могу высмеивать разрешенное значение bar()
во время тестирования foo()
?