React(对tr元素的Jest测试无法找到元素... tbody)

时间:2016-01-26 16:25:14

标签: reactjs react-jsx jestjs

我正在尝试测试我的组件,即

<TableRow key={1} name={name} />呈现为

<tr>
    <td>{this.props.name}</td>
</tr>

在测试文件中看起来像这样

const mockName = { }

const mockPopularSearchLitItem = TestUtils.renderIntoDocument(TableRow name={mockName} />)

但是当我尝试运行测试时出现以下错误

不变违规:findComponentRoot(...,。0):无法找到元素。这可能意味着DOM意外地发生了变异(例如,浏览器),通常是因为在使用表时忘记了<tbody>,嵌套了<form><p>或{{1}等标记,或在父级中使用非SVG元素。尝试使用React ID

检查元素的子节点

2 个答案:

答案 0 :(得分:0)

根据这篇文章http://codeheaven.io/testing-react-components-with-enzyme/,不可能单独测试。

鉴于

,这可能是一种更好的测试方法
  

浅层渲染让我们渲染我们的组件而不触及DOM。它还让我们测试我们的组件作为一个单元,因为它使我们的组件只有一层深度。子组件中的错误不会传播到顶级组件,使我们的测试更加孤立和可靠。

答案 1 :(得分:0)

尝试创建虚拟表:

Class simple 
{

 static int i;
 public static void main(string args[]) 
  {
      int i=10;
       System.out.println("Local Variable I =" +i) ;
     system.out.println("Global variable I =" +Simple.i) 
   }