2017-10-05 23 views
0

我有一个组件调用Foorender功能是这样的:酶 - 如何检测组件是否使用shallow()方法呈现?

render() { 
    if (!this.props.something) { 
     return null; 
    } 

    return (
     <div> 
      <Bar /> 
      <Baz /> 
     </div> 
    ); 
} 

我想测试Foo部件,看是否div呈现:

test('is div rendered',() => { 
    const component = shallow(
     <Foo something={false} /> 
    ); 

    expect(component.find('div').at(0).exists()).toBeFalsy(); 
}); 

但测试结果在true 。我该如何测试,使用shallow渲染方法是否存在div

+0

嘿,我的回答是否解决了您的问题? @JoeTidee –

+0

我还没有实现它。 – JoeTidee

回答

1

当你使用.find()。at()时,它会每次都返回一个对象。期望断言应该是这样的:

expect(component.find('div').node).toBe(undefined); 
+0

不错!或'expect(component.find('div').length).toBe(0);' –

相关问题