如何用酶单位测试找到元素?

时间:2016-10-31 23:21:20

标签: javascript reactjs chai enzyme

我有一个使用包含有效功能的单元测试。是否可以从集合中选择一个节点,然后获取text属性?我试过这个:

it('should be equaling name property', () => {
        const props = {
            myprops: [{
                email: "blaat@mail.com",
                name: "Coco Chanel"
            }]
        };
        const wrapper = shallow(<ServiceDetails {...props} />);
        expect(wrapper.find('div')[0].text).equals('Cici Chanel');
 });

这是我的reactjs组件的一部分:

  return (
          <section>
                <div>{email}</div>
                <div>{name}</div>
          </section>
  )

但是我收到了这个错误:

 TypeError: Cannot read property 'text' of undefined

如何选择第二个div并获取该div中的值?

2 个答案:

答案 0 :(得分:1)

我相信你需要唯一识别div:

expect(wrapper.find('section div:nth-of-type(1)').text()).equals('Cici Chanel');

或更好:

return (
      <section>
            <div className="div1">{email}</div>
            <div>{name}</div>
      </section>
)

expect(wrapper.find('.div1').text()).equals('Cici Chanel');

另外text is function,而不是财产。

答案 1 :(得分:0)

对我来说,以下代码有效

const component = wrappper.find('section.div')
expect(component.at(0).text()).toEqual('Cici chanel')