testing - Flutter:如何加载文件进行测试

标签 testing intellij-idea readfile flutter

文件可以从相对于dart脚本文件的目录中读取,就像var file = new File('./fixture/contacts.json').

但是,在 IDE 中运行的 flutter 测试无法读取该文件。

Loading as resource (不是,因为我不想在应用程序中捆绑测试数据文件)在测试中也不起作用。

什么是flutter中读取文件的好方法(对于命令行测试和IDE测试)?

运行 flutter test 非常快。但是 Intellij IDE 内部的测试非常慢,但它可以设置调试断点并单步执行和查看变量。所以这两个测试都非常有用。

最佳答案

刚刚尝试了一下,它比您想象的要容易。

首先,创建一个与测试位于同一目录中的文件夹。例如,我创建了一个名为 test_resources 的文件夹。

Test resources folder structure.

然后,假设我们有以下 JSON 文件用于测试目的。

test_resources/contacts.json

{
  "contacts": [
    {
      "id": 1,
      "name": "Seth Ladd"
    },
    {
      "id": 2,
      "name": "Eric Seidel"
    }
  ]
}

test/load_file_test.dart

我们可以像这样将它用于我们的测试:

import 'dart:convert';
import 'dart:io';
import 'package:flutter_test/flutter_test.dart';

void main() {
  test('Load a file', () async {
    final file = new File('test_resources/contacts.json');
    final json = jsonDecode(await file.readAsString());
    final contacts = json['contacts'];

    final seth = contacts.first;
    expect(seth['id'], 1);
    expect(seth['name'], 'Seth Ladd');

    final eric = contacts.last;
    expect(eric['id'], 2);
    expect(eric['name'], 'Eric Seidel');
  });
}

关于testing - Flutter:如何加载文件进行测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45780255/

相关文章:

.net - 没有单元测试 (TDD) 的 QA 能否高效?

perl - Perl 中浮点等效的单元测试

java - IntelliJ/Android Studio 上的 Ctrl+N 键盘快捷键

java - 如何为 IntelliJ IDEA 中的所有项目设置默认项目位置?

Android Studio 为新项目创建项目模板

java - 读取文件和分割信息

python - 从 django/python 中的日志文件读取后如何保持数据格式化

ruby-on-rails - 更新 shoulda-matchers 后未定义的方法 'assign_to'

testing - 在框架内简化 A-B 测试/Beta 测试支持

c++ - ReadFile() 读取的字节数少于其参数中指定的值