react-native - Expo 安全存储在开玩笑测试中不可用
问题描述
这个问题专门关于expo-secure-store
和jest
。
目前,我在登录时使用 expo-secure-store 来存储我的 JWT。它在模拟器上运行时运行良好,但是在 Jest 测试中根本不起作用;令牌返回为undefined
. 我可以像平常一样调用函数。
请原谅我可能在重构时出现的任何拼写错误。从测试调用:
test('when logging in, given correct credentials, gets response token.', async () => {
try {
var token = await SecureStore.getItemAsync("token");
await SecureStore.setItemAsync('token', 'test');
token = await SecureStore.getItemAsync('token');
console.log(token);
expect(token).toBeDefined();
expect(token).toBe("test");
} catch (err) {
console.log(err);
throw err;
}
}
问题:如果没有实际的设备/模拟器,expo-secure-store 是否无法加载/工作?
根本没有关于使用安全存储进行测试的文档,据我所知,我可能不得不模拟这个模块。
解决方案
您必须模拟您使用的任何本机模块,因为它们的实现主要存在于旨在在 ios 和 android 设备上运行的本机代码中。所以这里同样适用 - 你应该模拟 expo-secure-store。
推荐阅读
- python - 参数写入 elan 文件的多个值
- c# - ComboBox 的事件 comboBox_TextChanged 并不总是触发
- database - 我想要一个独特的领域,当与另一个领域结合在一起时,它不应该是唯一的
- python - 无法使用 subprocess.Popen 方法调用 C++ 二进制文件
- python - 如何根据数据中对象的类型将大型数据集操作为更小的数据集?
- bind - 将 ipv6 slaac 地址绑定到 Windows IP 堆栈错误 10049
- r - 用 2 个循环操纵整个 Row
- mqtt - Mosquitto 经纪人未验证发布者或订阅者发送的用户名和密码
- reactjs - React Context 和 JS 单例的区别
- powershell - Split Files in Powershell with Delimiter