Почему доза expo-FileSystem не работает в Jest? - PullRequest
1 голос
/ 07 октября 2019

Я пытаюсь написать несколько тестов для моего маленького проекта. Мы использовали expo-file-system, чтобы позволить нам получить доступ к внутренней памяти IOS. И вот мой тест для нашей функции сохранения.

import SaveData from "../app/resources/SaveData/SaveData"
import * as FileSystem from 'expo-file-system';

var promiseHolder = 0;

describe('\nsaveNewFile() is tested.\n', ()=>{
it("A file is going to be created.",async ()=>{
    await FileSystem.writeAsStringAsync("sometext","test.txt");
    promiseHolder = await FileSystem.getInfoAsync("test.txt");
    testHolder = await FileSystem.readAsStringAsync("test.txt");
    console.log(promiseHolder)
    console.log(testHolder)
  });
});

А вот и вывод. Вывод командной строки

Похоже, FileSystem.documentDirectory не работает в тесте, но наше приложение работает хорошо. Что мне делать?

Ответы [ 2 ]

0 голосов
/ 07 октября 2019

Вы не объявили переменную gan, например, обещание.

 import SaveData from "../app/resources/SaveData/SaveData";
 import * as FileSystem from 'expo-file-system';

 var promiseHolder = 0;
 var testHolder=0;

describe('\nsaveNewFile() is tested.\n', ()=>{
it("A file is going to be created.",async ()=>{
   let fileUri = FileSystem.documentDirectory + "text.txt";
   await FileSystem.writeAsStringAsync(flileUri, "cao");
   promiseHolder = await 
   FileSystem.getInfoAsync(fileUri);
   testHolder = await FileSystem.readAsStringAsync(fileUri);
   console.log(promiseHolder)
   console.log(testHolder)
    });
 });

Обновления: expo-jest создает макеты для импорта, такого как FileSystem, и результаты, полученные в тесте, предназначены для предопределенных настроек макета.

0 голосов
/ 07 октября 2019

Вы не объявили переменную testHolder, например, обещание.

 import SaveData from "../app/resources/SaveData/SaveData";
 import * as FileSystem from 'expo-file-system';

 var promiseHolder = 0;
 var testHolder = 0;

describe('\nsaveNewFile() is tested.\n', ()=>{
it("A file is going to be created.",async ()=>{
   await FileSystem.writeAsStringAsync("sometext","test.txt");
   promiseHolder = await 
   FileSystem.getInfoAsync("test.txt");
   testHolder = await FileSystem.readAsStringAsync("test.txt");
   console.log(promiseHolder)
   console.log(testHolder)
    });
 });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...