0
ネストされたconsole.error
を冗談単位テストで模擬するにはどうすればよいですか?私の試みでJS:jestJSユニットテストでネストされた関数を模擬する方法は?
(下記参照)私はあなたが呼んでいる、エラーこの行でjest.fn() value must be a mock function or spy. Received: undefined
機能
_onSubmit = (event) => {
event.preventDefault()
const { username, password } = this.state
return this.props.createUserMutation({
variables: { username, password }
}).then(response => {
const token = response.data.createUser.token
if (token) {
// do something
} else {
console.error('No token recieved')
}
})
}
テスト
it('_onSubmit() should log error, if no token is recieved', (done) => {
console['error'] = jest.fn()
const createUserMutation =() => {
return Promise.resolve({
data: {
createUser: { token: undefined }
}
})
}
const wrapper = shallow(<CreateAccount
createUserMutation={createUserMutation}
/>)
wrapper
.update()
.find(Form)
.props()
.onSubmit({ preventDefault:() => {} })
.then(() => {
expect(console.error()).toHaveBeenCalledWith('No token recieved')
done()
})
})
いつグローバル化する必要がありますか?グローバルコードを使用せずにコードが動作しています... – user3142695
申し訳ありません、それはあなたのためにそれのように働いた知って良い!モジュールのロード方法によっては、現在のスコープ内のconsole.logを上書きしている可能性があります。 –