【问题标题】:How to find element with Enzyme unit testing?如何通过酶单元测试找到元素?
【发布时间】:2017-03-14 02:46:02
【问题描述】:

我有一个单元测试,它使用包含有效的函数。是否可以从集合中选择一个节点然后获取 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 中的值?

【问题讨论】:

    标签: javascript reactjs chai enzyme


    【解决方案1】:

    对我来说,以下代码有效

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

    【讨论】:

      【解决方案2】:

      我相信您需要唯一标识 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,不是财产。

      【讨论】:

        猜你喜欢
        • 2018-01-02
        • 2017-09-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-04-05
        • 2021-03-14
        • 2019-05-22
        相关资源
        最近更新 更多