我想测试我的React Native代码,但是我正在纠结应该使用哪个测试库。
根据我在互联网上看到的,比起测试组件的内部逻辑,更好的做法是专注于测试用户行为,这就是为什么我使用jest库来测试test-renderer。
在ReactNative official documentation上有两个推荐的库与我的库等效:react-native-testing-library和@测试库/React Native(也称为 * 本机测试库 *)。
它们之间有什么区别?
我想测试我的React Native代码,但是我正在纠结应该使用哪个测试库。
根据我在互联网上看到的,比起测试组件的内部逻辑,更好的做法是专注于测试用户行为,这就是为什么我使用jest库来测试test-renderer。
在ReactNative official documentation上有两个推荐的库与我的库等效:react-native-testing-library和@测试库/React Native(也称为 * 本机测试库 *)。
它们之间有什么区别?
2条答案
按热度按时间dffbzjpn1#
testing-library/native-testing-library建议在github上使用callstack/testing-library,但是
@testing-library/react-native@7.x.x
的npm包指向存储库https://github.com/callstack/react-native-testing-library
。在文档中:
您可能已经注意到了一个奇怪的
v2
到v7
的升级,跳过了版本3、4、5和6。这是因为我们将react-native-testing-library
npm包重命名为@testing-library/react-native
,正式加入了“测试库”家族🎉。我们将现有的两个库合并为一个库。本机测试库仓库(包含v6、将很快被归档,并且不建议使用v7以下的@testing-library/react-native
(来源于上述资源库)。为了品牌化的目的,我们保留了“React Native Testing Library”的名称,类似于“React Testing Library”。只有npm发布的包会发生变化。在Callstack治理下,代码库也保持不变。
总结:代码库本质上是相同的,(因为它来自相同的开发人员),但是,自从加入
@testing-library
以来,开发人员在npm注册表上做了一些管理工作来合并包。ut6juiuv2#
过去,React原生测试库包括:
@testing-library/react-native
由Brandon Carroll构建,react-native-testing-library
由Callstack构建。这两个库都是根据肯特C. Dodds的React Testing Library建模的,并依赖React Test Renderer来呈现组件。经过一段时间后,后一个得到了更积极的维护,并在社区中看到了更大的采用。2020年6月,前一个(作者:布兰登卡罗尔)已被弃用,后一个(由Callstack提供)已经成为测试库组织中的官方ReactNative库,接管
@testing-library/react-native
NPM包名称。在合并过程中,Callstack库的API已被修改,以允许用户更容易地从已弃用的库中转换。