我正在使用 enzyme 和chai为我的reactjs应用程序创建一个单元测试:
const wrapper = shallow(
<MyComp {...props}>
</MyComp>
);
expect(wrapper.debug()).to.contain("hello");
如何断言单词“hello”恰好出现 1 次?
最佳答案
我建议测试组件的完整渲染:
// 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,还有库/插件可以预先生成预期元素,您可以将其 checkin 源代码管理。每次测试运行时,实际渲染都会与此预渲染组件进行比较。但我自己并没有使用这种方法。
关于javascript - 如何通过单元测试检查字符串是否恰好出现 1 次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44193317/