Enzyme 和 React Testing Library 之间有什么区别?我应该使用哪个来在 React 项目中进行测试?
enzyme :https://www.npmjs.com/package/enzyme
React 测试库:https://www.npmjs.com/package/@testing-library/react
最佳答案
在 Enzyme 中,我们使用组件的状态和属性来测试组件。这通常意味着测试是脆弱的。假设我们已经为一个组件编写了测试并且它运行良好。但是,如果有人更改了组件中 state 或 props 的变量名,那么即使组件的功能没有改变,我们的测试也会失败。这种行为表明了测试的脆弱性。
而在 React 测试库中,我们从用户的角度来测试组件。假设我们要测试一个下拉组件,我们不会根据它的状态和 Prop 来测试该组件。相反,我们使用 DOM 元素来测试它,测试用户如何与它交互。
React 测试库的主要目的是通过以用户使用它们的方式测试您的组件来提高您对测试的信心。用户不关心幕后发生的事情,他们只是看到输出并与之交互。您无需访问组件的内部 API 或评估它们的状态,而是通过基于组件输出编写测试来获得更多信心。
在某些时候,React 测试库的使用比 Enzyme 更广泛。
关于reactjs - enzyme 和 react 测试库之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72429044/