の.catchをテストする方法。冗談/酵素:.thenと私は小道具として注入します私のreactJSコンポーネントで非同期関数、のためにいくつかの酵素/冗談ユニットテストをやろうとしているネストされた非同期関数
私の問題は、機能の一部のthen()
の値をテストし、エラーが発生した場合はcatch()
をテストすることです。
これは以下のように私のコンポーネントの機能(<CreateAccount />
)がどのように見えるかです:
it('_onSubmit() should throw error if data is missing',() => {
const createUserMutation =() => {
return Promise.resolve({})
}
const wrapper = shallow(<CreateAccount createUserMutation={createUserMutation} />)
wrapper.update().find(Form).simulate('submit', {
preventDefault:() => {}
})
const state = wrapper.instance().state
expect(wrapper).toThrow() // <-- How to do it correctly?
})
そして、第二の試験は、チェックする必要があります。データが定義されていないとして、最初のテストは.catch(error => {})
をチェックする必要があり
_onSubmit = (event) => {
event.preventDefault()
const { username, password } = this.state
this.props.createUserMutation({
variables: { username, password }
}).then(response => {
const token = response.data.createUser.token
if (token) {
Cookies.set('auth-token', token, { expires: 1 })
}
}).catch(error => {
console.warn(error)
})
}
クッキーが正しく設定されているかどうか。ここで私はそれを行う方法を知らない?私はなぜあなたはエラーのためconsole.warn
を使用しているCookie
it('_onSubmit() should get token',() => {
const createUserMutation =() => {
return Promise.resolve({
data: {
createUser: { token: 'token' }
}
})
}
const wrapper = shallow(<CreateAccount createUserMutation={createUserMutation} />)
wrapper.find(Form).simulate('submit', {
preventDefault:() => {}
})
// How to check for token value and Cookies?
})
私はエラー 'TypeError例外を得るのです:未定義の約束リゾルバは、両試験その入力用 – user3142695