我正在用React Native构建一个应用程序.我想尽量减少与数据库通信的频率,因此我大量使用AsyncStorage.但是DB和AsyncStorage之间的转换存在很多错误.因此,我想通过对它运行自动化测试来确保AsyncStorage拥有我相信它所做的数据.令人惊讶的是,我还没有找到任何有关如何在线进行此操作的信息.我试图独自完成这项工作并没有成功.
使用Jest:
it("can read asyncstorage", () => {
return AsyncStorage.getItem('foo').then(foo => {
expect(foo).not.toBe("");
}); });
Run Code Online (Sandbox Code Playgroud)
此方法失败并显示错误:
TypeError: RCTAsyncStorage.multiGet is not a function
Run Code Online (Sandbox Code Playgroud)
删除返回将使其立即运行而无需等待值并不正确地通过测试.
当我尝试使用await关键字测试它时,我遇到了完全相同的错误:
it('can read asyncstorage', async () => {
this.foo = "";
await AsyncStorage.getItem('foo').then(foo => {
this.foo = foo;
});
expect(foo).not.toBe(""); });
Run Code Online (Sandbox Code Playgroud)
有关如何成功运行AsyncStorage中的值断言的任何建议?我宁愿继续使用Jest,但如果它只能通过一些备用测试库来完成,我会对此持开放态度.