在React Native中使用Jest进行单元测试时,我有几个问题。
-
我现在用
npm test
运行我的测试,这是运行它的唯一方法还是在构建项目时也执行测试?如果是这样,我可以禁用自动测试吗? -
如果测试失败,是否会阻止应用程序构建或执行?
-
如果测试在iOS和Android上失败或成功,行为是否有任何差异?
示例
下面的代码只是测试AsyncStorage是否按预期工作。如果下面的测试失败-肯定AsyncStorage将不工作,如果我在应用程序中使用它,但它会阻止应用程序被完全使用吗?
beforeEach(() => {
AsyncStorage.clear();
});
it('Test - Read AsyncStorage', async () => {
await AsyncStorage.setItem('username', 'testUser')
let usernameValue = await AsyncStorage.getItem('username')
expect(usernameValue).toBe('testUser')
});
我很高兴得到任何进一步的提示-我只是找不到上面的具体答案,所以提前感谢,我真的没有做过太多的单元测试,所以对这个很陌生。
-
在构建项目时不执行测试。如果您使用的是CICD平台,它可能会运行
npm
命令来构建项目,然后在构建成功完成后运行测试。但是,您可能需要自己配置,因为默认情况下构建和测试是单独完成的。 -
一个失败的测试不会阻止你的应用程序的构建和执行。它只是一个指示,表明某些逻辑可能不会按照您希望的方式运行。如果您使用的是CICD平台,并且您的测试失败了,通常
jestjs
在遇到失败时会发出错误代码1
,这将导致您的管道失败。 -
react-native
的重点是尽可能地与平台无关。因此,失败的jestjs
测试将对所有平台产生相同的影响。