2016-08-25 74 views
0

我正在寻找我怎么能在我的应用程序执行单元测试的功能,但也有有限的资源可用,是否有其提供的步骤,以在ReactNative应用添加单元测试功能步指南提供的任何文档。单元测试ReactNative用玩笑

怎么把大部分的文件已经过时的人会说,我们需要模拟反应,本地和进口有反应/这是现在不可用插件。

现在有在不做出反应的附加功能文件....

回答

2

我会按照官方的玩笑docs建立测试环境与react-native

应该有与测试终极版/减速没有区别。对于组件,您可以使用新的snapshots测试方法,该方法也与react-native兼容。你可以在Jest回购中看到一个小例子:https://github.com/facebook/jest/tree/master/examples/react-native

+0

Nerge感谢岁的答复,我可以创建类的__tests__目录的快照,并年级的快照需要被时年类被修改而改变,如果你想测试某些功能和什么什么如果你的类用道具渲染另一个类,并在该特定类中创建UI。 –

+0

我认为你需要用你试图做的测试来创建一个不起作用的问题(先试着去做),然后将代码发布到问题中。 –

1

虽然这是一段时间了,但使用React Native进行单元测试的文档并不完整,但这里是我如何处理组件方法的测试,这可能是我使用的大部分方法。

下面是一个典型的例子开玩笑:

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(); 
});