我正在为我的reactjs-app用酶和柴创建一个单元测试:
const wrapper = shallow(
<MyComp {...props}>
</MyComp>
);
expect(wrapper.debug()).to.contain("hello");
我如何断言“hello”这个词恰好出现1次?
答案 0 :(得分:0)
我建议测试组件的完整渲染:
// GIVEN
const expectedElement = shallow(<div>Hello</div>);
// WHEN
const actualElement = shallow(<MyComp {...props} />);
// THEN
expect(actualElement.html()).to.equal(expectedElement.html());
它比contains
方法提供了更好的覆盖范围。但是,您有时需要使用正则表达式来清除React空HTML模板或生成的CSS类(如果您或您的第三方组件正在使用它们)。
如果您使用Jest,还有一个库/插件可以预生成预期元素,您可以将其检入源代码控制。每次测试运行时,将实际渲染与此预渲染组件进行比较。但我自己并没有使用这种方法。