#react-native #sqlite #testing #jestjs #expo
Вопрос:
По большей части я использую насмешки, чтобы пропустить все функции моей базы данных. Однако я столкнулся с ошибкой, и я хочу предотвратить подобные проблемы, фактически протестировав SQL-запросы, которые я делаю к SQLite, вызванному Expo.
Поэтому я ищу что-то, что может издеваться expo-sqlite
, но вместо использования expo-sqlite
я думал, что должно быть что-то вроде реализации Node JS SQLite, которую может использовать Jest.
Я ищу что-то, где я мог бы сделать следующее
import * as SQLite from 'expo-sqlite';
describe("do some SQLiteThing", () => {
let db;
beforeEach(()=> {
db = someMethodThatReturnsARunningSQLiteInstanceThatsEmpty()
createTablesAndSeedData(db);
});
it("should select nicely", async () => {
const rs = await new Promise((resolve, reject)=> {
db.exec(
[
{ sql: 'SELECT * FROM MYTABLE;', args: [] }
],
false,
resolve
);
});
expect(rs).toEqual([{my:expecations}]);
});
it("should fail gracefully nicely", async () => {
try {
await new Promise((resolve, reject)=> {
db.exec(
[
{ sql: 'SELECT * FROM MYTABLETHATDOESNOTEXIST;', args: [] }
],
false,
resolve,
reject
);
});
fail();
} catch (err) {
expect(err).toEqual(something);
}
});
});