酶对一个元素的支柱断言

时间:2017-06-21 10:35:23

标签: reactjs enzyme

我试图断言作为组件的prop提供的元素。

e.g。

function ComponentUnderTest() {
  const foo = <span></span>
  return <Bob something={foo} />
}

我尝试过这样的事情:

shallow(<ComponentUnderTest />)
  .prop(‘something’)
  .matchesElement(<span></span>)

但我收到的错误类似于:

  

(0,_enzyme.shallow)(...)。prop(...)。matchesElement不是函数

就像我需要将某些prop值提升到酶包装API中。

关于如何做到这一点的任何想法,避免不得不利用元素本身。

2 个答案:

答案 0 :(得分:0)

上面Ria的评论对我来说似乎是正确的。 .prop(‘something’)将返回&#34;的内容&#34;支柱。此属性值不会是ShallowWrapper实例(您可以通过将.prop(‘something’)打印到控制台来检查它的实际内容。因此,您在尝试调用不存在的函数时会得到正常的JavaScript错误(因为.prop(‘something’).matchesElement将是未定义的)。

答案 1 :(得分:0)

因此,您可以用shallow包装道具以初始化Shallow Wrapper,并使用类似的方法进行断言

shallow(
    shallow(<ComponentUnderTest />).prop(‘something’)
  )
.matchesElement(<span>?</span>)