Я создаю приложение с React Native. Я хочу свести к минимуму, как часто я общаюсь с базой данных, поэтому я активно использую AsyncStorage. Есть много места для ошибок в переводе между БД и AsyncStorage. Поэтому я хочу убедиться, что AsyncStorage имеет данные, которые, как я полагаю, он делает, запуская автоматические тесты против него. Удивительно, но я не нашел никакой информации о том, как это сделать в Интернете. Мои попытки сделать это сами по себе не сработали.Как протестировать Async Storage с помощью Jest?
Использование шутя:
it("can read asyncstorage",() => {
return AsyncStorage.getItem('foo').then(foo => {
expect(foo).not.toBe("");
}); });
Этот метод потерпел неудачу с ошибкой:
TypeError: RCTAsyncStorage.multiGet is not a function
Удаление возвращение заставит его работать немедленно, не дожидаясь значения и неправильно пройти тест.
я получил удар с той же самой ошибкой, когда я попытался проверить его с помощью ключевого слова ЖДЕТ:
it('can read asyncstorage', async() => {
this.foo = "";
await AsyncStorage.getItem('foo').then(foo => {
this.foo = foo;
});
expect(foo).not.toBe(""); });
Любые предложения о том, как успешно запустить утверждения против значений в AsyncStorage? Я предпочел бы продолжать использовать Jest, но если это можно сделать только с помощью некоторой альтернативной библиотеки тестирования, я открыт для этого.
Это решение будет работать только для вашего варианта использования, нижеприведенное решение должно быть принято! – Ouadie
@ Нужно редактировать, поэтому определены 'multiGet' и' multiSet'. @ brian-case спрашивал конкретно о 'multiGet'. Я выкопаю, как я закончил издеваться над моим, избегая жестко запрограммированных ответов на 'resolve()' – jaygooby
Получение «Не удается найти модуль« AsyncStorage »из« response-native-implementation.js »в моем тесте при использовании вашего макет - любая идея, почему? :) @jaygooby – jhm