为什么 mockAxios.post.mockImplementationOnce return 没有任何数据
Why doesn't the mockAxios.post.mockImplementationOnce return any data
为什么 mockAxios.post.mockImplementationOnce return 没有任何数据?我想看看错误。
it('should show errors when submitting returns a 422 response', () => {
mockAxios.post.mockImplementationOnce(() =>
Promise.resolve({
data: { errors: ['Name is required.', 'Email is required.'] },
status: 422,
})
)
addStudentForm()
.find('button.open-modal')
.simulate('click')
addStudentForm()
.find('button.submit')
.simulate('click')
expect(addStudentForm().instance().state.showModal).toBe(true)
console.log(addStudentForm().instance().state)
})
这是我在 console.log 中的状态。
{ showModal: true,
name: '',
username: '' }
在前端,event.response.data
中的响应确实向我显示了我希望看到的内容 errors :["Name is required.", "Email is required."]
,但我似乎无法模拟它。
如果您需要查看完整上下文:https://github.com/freeCodeCamp/classroom-mode/blob/mock-axio/client/src/test/AddStudentForm.test.js
当我在
上等待时,这很有趣
await addStudentForm()
.find('button.submit')
.simulate('click')
expect(addStudentForm().instance().state.showModal).toBe(true) returns false.
您似乎错过了 done(),这就是测试提前完成然后返回模拟数据的原因:
it('should show errors when submitting returns a 422 response', done // < --HERE ->
=> {
mockAxios.post.mockImplementationOnce(() => {
Promise.resolve({
data: { errors: ['Name is required.', 'Email is required.'] },
status: 422,
});
addStudentForm()
.find('button.open-modal')
.simulate('click')
addStudentForm()
.find('button.submit')
.simulate('click')
expect(addStudentForm().instance().state.showModal).toBe(true)
console.log(addStudentForm().instance().state);
done(); // <- HERE ->
})
})
为什么 mockAxios.post.mockImplementationOnce return 没有任何数据?我想看看错误。
it('should show errors when submitting returns a 422 response', () => {
mockAxios.post.mockImplementationOnce(() =>
Promise.resolve({
data: { errors: ['Name is required.', 'Email is required.'] },
status: 422,
})
)
addStudentForm()
.find('button.open-modal')
.simulate('click')
addStudentForm()
.find('button.submit')
.simulate('click')
expect(addStudentForm().instance().state.showModal).toBe(true)
console.log(addStudentForm().instance().state)
})
这是我在 console.log 中的状态。
{ showModal: true,
name: '',
username: '' }
在前端,event.response.data
中的响应确实向我显示了我希望看到的内容 errors :["Name is required.", "Email is required."]
,但我似乎无法模拟它。
如果您需要查看完整上下文:https://github.com/freeCodeCamp/classroom-mode/blob/mock-axio/client/src/test/AddStudentForm.test.js
当我在
上等待时,这很有趣await addStudentForm()
.find('button.submit')
.simulate('click')
expect(addStudentForm().instance().state.showModal).toBe(true) returns false.
您似乎错过了 done(),这就是测试提前完成然后返回模拟数据的原因:
it('should show errors when submitting returns a 422 response', done // < --HERE ->
=> {
mockAxios.post.mockImplementationOnce(() => {
Promise.resolve({
data: { errors: ['Name is required.', 'Email is required.'] },
status: 422,
});
addStudentForm()
.find('button.open-modal')
.simulate('click')
addStudentForm()
.find('button.submit')
.simulate('click')
expect(addStudentForm().instance().state.showModal).toBe(true)
console.log(addStudentForm().instance().state);
done(); // <- HERE ->
})
})