我正在搜索如何在我的应用程序中实现单元测试功能,但是可用的资源有限,是否有任何文档提供了在ReactNative应用程序中添加单元测试功能的分步指南。
因为大部分文档已经过时了,因为有人说我们需要模拟react-native和导入反应/插件,现在还没有。
现在React中没有添加ons文件....
答案 0 :(得分:2)
我会按照官方Jest docs设置react-native
的测试环境。
测试Redux / reducer应该没有区别。对于组件,您可以使用与react-native
兼容的新snapshots测试方法。你可以在Jest仓库中看到一个小例子:https://github.com/facebook/jest/tree/master/examples/react-native。
答案 1 :(得分:1)
虽然这已经有一段时间了,但是在使用React Native进行单元测试时,文档并不完整,但这里是我如何处理组件方法的测试,这可能是我使用的大部分内容。
以下是Jest中的典型示例:
it('handles onInputTextChanged', () => {
const wrapper = shallow(<TuraltChat isAnimated={false} />);
wrapper.instance().onInputTextChanged("The message has changed");
expect(wrapper.state("text")).toBe("The message has changed");
});
instance()
方法公开底层组件,然后您可以通常的方式调用它上面的方法。
即使它在所有DOM依赖项中都很烦人,我也使用了酶,它对组件级测试有很大帮助,因为我不需要担心所有嵌套组件。
import { shallow } from 'enzyme';
import toJson from 'enzyme-to-json';
...
it('renders initially', () => {
const wrapper = shallow(<Composer />);
const json = toJson(wrapper);
expect(json).toMatchSnapshot();
});