反应酶测试-使用componentDidMount进行DOM操作

时间:2018-11-09 12:26:56

标签: reactjs enzyme mount

我正在根据元素位置使用| ?- length(List, 5), comb(List, N, [a,b]). List = [a,b,_,_,_] N = 2 ? ; List = [a,_,b,_,_] N = 2 ? ; List = [a,_,_,b,_] N = 2 ? ; List = [a,_,_,_,b] N = 2 ? ; List = [_,a,b,_,_] N = 2 ? ; List = [_,a,_,b,_] N = 2 ? ; List = [_,a,_,_,b] N = 2 ? ; List = [_,_,a,b,_] N = 2 ? ; List = [_,_,a,_,b] N = 2 ? a List = [_,_,_,a,b] N = 2 no | ?- 来操作DOM。它可以在React中完美运行,但是我想为此创建一个单元测试。

基本上,我有一个包含一堆子元素的容器,我想为被包装的子元素添加一个类(不在第一行中)。我在componentDidMount中采用了这种逻辑。

如何使用酶单位测试进行测试?

我以为使用componentDidMount,但没有结果。有想法吗?

mount

单元测试:

class Container extends Component {
  componentDidMount () {
    this.updateChildren()
  }

  updateChildren () {
    // logic to add a class if element position is diferent than 1st line
    // calls render again with state update
  }

  ...
}

1 个答案:

答案 0 :(得分:0)

ComponentDidMount就像您的类中的方法。

因此,您可以通过这种方式在单元测试中直接调用该方法

wrapper = shallow(<Your Component />);

// call the method
wrapper.instance().componentDidMount()

如果需要,可以为该方法编写模拟实现。