为什么Expo文件系统在Jest中不起作用? [英] Why doesn't expo-file-system work in Jest?

查看:53
本文介绍了为什么Expo文件系统在Jest中不起作用?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试为我的小项目编写一些测试.我们使用了expo-file-system来访问IOS内部存储.这是我对保存功能的测试.

I am trying to write some tests for my little project. We used expo-file-system to allow us access IOS internal storage. And here is my test for our saving function.

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在测试中无法正常工作,但我们的应用程序运行良好.我该怎么办?

It looks like FileSystem.documentDirectory does not work in test, but our app works well. What should I do?

推荐答案

您没有声明gan变量,例如promiseHolder.

You didn't declare gan variable like promiseHolder.

 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之类的导入制作模型,并且在测试中收到的结果将用于预定义的模型预设.

Updates: expo-jest makes mockups for imports like FileSystem and results that were received in test intend to predefined mockup presets.

这篇关于为什么Expo文件系统在Jest中不起作用?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆