【发布时间】:2018-10-17 21:07:29
【问题描述】:
我将 jest 与 react-apollo 的 MockedProvider 一起使用,但我遇到了麻烦,因为 MockedProvider 似乎是异步运行的。
给定以下简单组件:
const Component = () => <Query query={query}>(({loading, data }) => if(loading) return 'loading' else if (data) return 'data' else return 'nothing'</Query>
本次测试:
it('', done => {
const renderer = TestRenderer.create(
<MockedProvider mocks={myMock} >
<Component/>
</MockedProvider>
)
expect(renderer.toJSON()).toMatchSnapshot()
显示快照:loading
但如果我添加一个简单的 1 毫秒超时:
it('', done => {
const renderer = TestRenderer.create(
<MockedProvider mocks={myMock} >
<Component/>
</MockedProvider>
)
setTimeout(() => {
expect(renderer.toJSON()).toMatchSnapshot()
done()
}, 1);
我得到一个快照:data
有没有更优雅的方法来解决这个问题?
【问题讨论】:
标签: javascript react-apollo apollo-client