如何通过单元测试检查字符串的确切出现次数?

时间:2017-05-26 03:55:13

标签: javascript unit-testing reactjs chai enzyme

我正在为我的reactjs-app用酶和柴创建一个单元测试:

const wrapper = shallow(
    <MyComp {...props}>
    </MyComp>
);

expect(wrapper.debug()).to.contain("hello");

我如何断言“hello”这个词恰好出现1次?

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,还有一个库/插件可以预生成预期元素,您可以将其检入源代码控制。每次测试运行时,将实际渲染与此预渲染组件进行比较。但我自己并没有使用这种方法。