从酶中获取React Element子项的文本值

时间:2018-06-01 09:53:40

标签: reactjs enzyme

我将以下组件作为我的大组件的一部分。

<UI.Field
   horizontal
     value={
       <FormattedNumber
         style="currency"
         currency="EUR"
         data-service-fee
         value={booking.service_fee_cents || 8000 / 100}
       />
       }
      label={`${base}service_fee`}
      />

我正在为该组件编写测试。

it('renders default value if service fee is null', () => {
      wrapper.setProps({
        booking: {
          ...make(booking),
          service_fee_cents: null,
        },
      })
      expect(wrapper.find('[data-service-fee]').text()).toBe('€80.00')
    })

我要做的是在名为data-service-fee的字段中获取值。但是wrapper.find('[data-service-fee]')总是返回null。

当我尝试wrapper.find('[label*="service_fee"]').text()时,它会返回组件本身而不是文本?

我做错了什么?

1 个答案:

答案 0 :(得分:1)

您可以在ShallowWrapper上使用number=3方法获取组件的支柱。

还可以使用prop检索任何DOM元素属性。

wrapper.prop('data-service-fee')应该给你价值。

参考 - ShallowWrapper.prop()