我复制了一个例子来理解reactjs的Mock-async-storage的测试。欢迎对不同的测试方法提出任何建议。我试图从这个堆栈溢出页面复制用例:How to test Async Storage with Jest? 但我无法弄清楚这如何适合我的示例案例。所以我尝试了下面的 npm modulehttps://github.com/devmetal/mock-async-storage,但这也没有帮助。
用 Example.test.js 编写的代码
import AsyncStorage from '@react-native-community/async-storage';
beforeEach(() => {
AsyncStorage.clear();
// console.log(`After the data is being reset :`)
// console.log(AsyncStorage)
});
it('can read asyncstorage', async () => {
await AsyncStorage.setItem('username', 'testUser')
let username = await AsyncStorage.getItem('username')
// console.log(`After the data is being set :`)
// console.log(AsyncStorage)
expect(username).toBe('testUser')
});
jest.config.js 文件中的代码:
module.exports = {
setupFilesAfterEnv: [
'./setup-tests.js',
],
};
setup-tests.js 中的代码
import MockAsyncStorage from 'mock-async-storage';
const mockImpl = new MockAsyncStorage();
jest.mock('@react-native-community/async-storage', () => mockImpl);
在根目录中创建了 mocks 文件夹,然后在其中创建了 @react-native-community 文件夹。然后使用以下代码在 async-storage.js 文件中创建:
export default from '@react-native-community/async-storage/jest/async-storage-mock'
我正在使用 jest-expo 进行测试。
上述测试用例的输出是: