我正在尝试为我的辅助函数编写一个测试,它使用react-native-keychain 库。
据此,我根据文档嘲笑了该库。
我在该目录下添加了一个目录react-native-keychain __mocks__,并添加了以下代码:
const keychainMock = {
SECURITY_LEVEL_ANY: 'MOCK_SECURITY_LEVEL_ANY',
SECURITY_LEVEL_SECURE_SOFTWARE: 'MOCK_SECURITY_LEVEL_SECURE_SOFTWARE',
SECURITY_LEVEL_SECURE_HARDWARE: 'MOCK_SECURITY_LEVEL_SECURE_HARDWARE',
setGenericPassword: jest.fn().mockResolvedValue(),
getGenericPassword: jest.fn().mockResolvedValue(),
resetGenericPassword: jest.fn().mockResolvedValue(),
};
export default keychainMock;
Run Code Online (Sandbox Code Playgroud)
我的辅助函数调用 getGenericPassword 方法。
{
getGenericPassword().then(genericPassword => {
if (genericPassword) {
setUser({jwt: genericPassword.password, authorities: []});
}
});
}
Run Code Online (Sandbox Code Playgroud)
我的测试如下所示:
describe('AuthProvider', () => {
test('Snapshot', () => {
const component = renderer.create(
<AuthProvider>
<MockComponent />
</AuthProvider>,
);
expect(component.toJSON()).toMatchSnapshot();
});
Run Code Online (Sandbox Code Playgroud)
运行测试时出现以下错误:
TypeError: (0 , _reactNativeKeychain.getGenericPassword) is not a function
Run Code Online (Sandbox Code Playgroud)
包.json:
"react": "17.0.2",
"react-native": "0.68.1",
"react-native-keychain": …Run Code Online (Sandbox Code Playgroud) typescript reactjs jestjs react-native react-native-keychain