我有一个组件可以在我的应用程序中切换语言。如果当前语言为" en"它显示了一个文本链接" Francais"如果当前的语言是" fr"它会显示一个带有文本的链接"英语"。
点击后,它会切换" en"之间的语言。和" fr"。我正在尝试为这种行为写一个测试。
当前语言使用apollo-link-state存储在Apollo客户端缓存中。
我写了下面的测试,我认为应该通过,但不会。
describe('when clicked', async () => {
it('changes the language displayed to English', async () => {
const englishClient = testClient({ language: 'en' })
const wrapper = mount(
<ApolloProvider client={englishClient}>
<LanguageSwitcher />
</ApolloProvider>,
)
wrapper.find('a').simulate('click')
wrapper.update()
expect(wrapper.text()).toMatch(/English/)
})
})
我想了解为什么这个测试失败了,以及如何让它通过。
如果有更好的方法/最佳实践来测试这类事情,我很乐意知道。
您可以在代码框中查看代码并运行测试:https://codesandbox.io/s/kmnwy1z8v