在 React 中测试文本值

testing text values in React

使用 Mocha、Karma 和 React 测试工具测试以下简单功能:

renderTodoCount() {
    const { incompleteCount } = this.props;
    const itemWord = incompleteCount === 1 ? 'item' : 'items';

    return (
      <span className='todo-count'>
        <strong>{incompleteCount || 'No'}</strong> {itemWord} left
      </span>
    );
}

我将测试用例分为三种情况:1.incompleteCount=0、2.incompleteCount=1、3.incompleteCount=2.

在第一种情况下,我希望得到以下输出(或多或少):

  <span className='todo-count'>
    <strong>No</strong> items left
  </span>

并会对此进行测试。我实际看到的(来自 dump())是:

  <span class="todo-count" data-reactid=".0.0">
    <strong data-reactid=".0.0.0">No</strong><span data-reactid=".0.0.1"></span><span data-reactid=".0.0.2">items</span><span data-reactid=".0.0.3"> left</span>
 </span>

有什么好的方法可以测试主跨度内文本的值吗?我在 jQuery.

中寻找等同于 .val().text() 的东西

通过使用与 React 捆绑在一起的 TestUtils,您可以提取实际的 DOM 节点并使用 .textContent 属性 来获取文本。

TestUtils.findRenderedDOMComponentWithClass('todo-count').getDOMNode().textCont‌​ent