模拟动作和开玩笑地手动调用它们有什么区别?



模拟操作和amp;手动打电话给他们?

我已经使用酶安装了组件。

const wrapper = mount(
  <Provider store={store}>
    <CreateNavItemForm />
  </Provider>,
)
const formWrapper = wrapper.find('CreateNavItemForm').first()

什么是什么区别,哪种方法更好?

   const title = 'title'

1st:

formWrapper
   .find('input')
   .at(0)
   .props()
   .onChange(title)

第二:

formWrapper
  .find('input')
  .at(0)
  .simulate('change', { target: { value: title } })

一个很好的问题,有一个区别,当您使用模拟检查时,您是模拟的。

此外,您正在检查您的组件是否正确接线:例如,考虑这是您的组件:

const SpecialInput = ({onChange}) => (<input name />);

此组件根本不使用onChange,您的Prop使用测试将通过,但是在实际情况下,它无法正常工作。

添加时,当您使用Prop用法进行测试时,这意味着您知道组件的内部实现,因此,如果将来您将更改实现,而不是需要的功能更改测试,这是一种不良测试的气味。

最新更新