繁体   English   中英

Dart 测试无法访问局部变量

[英]Dart test cannot access local variables

我正在尝试编写一些 dart 单元测试,但无法弄清楚如何让setUp()运行。 用flutter_test.dart和test.dart都试过了。 添加断点并调试测试表明setUp()没有运行。

版本:

Flutter 2.3.0-2.0.pre.79 • channel master • https://github.com/flutter/flutter.git
Framework • revision b3f7ebe069 (4 days ago) • 2021-05-08 08:54:02 +0800
Engine • revision f57e986aa8
Tools • Dart 2.14.0 (build 2.14.0-74.0.dev)

dev_dependencies:
  flutter_test:
    sdk: flutter
  test: ^1.16.8

按照测试 package的自述文件以及Shailen Tuli 的博客,我想出了这个测试

// import 'package:flutter_test/flutter_test.dart';
import 'package:test/test.dart';

void main() {
  int int1;
  int int2;

  setUp(() {
    int1 = 1;
    int2 = 2;
  });

  test(
    'Check int1 and int2',
    () {
      print(int1);
      print(int2);
    },
  );
}

错误 output 是The non-nullable local variable 'int1' must be assigned before it can be used. Try giving it an initializer expression, or ensure that it's assigned on every execution path. The non-nullable local variable 'int1' must be assigned before it can be used. Try giving it an initializer expression, or ensure that it's assigned on every execution path.

不知道为什么它没有运行。 尝试添加this. 在前面,它抛出了更多错误。

import 'package:test/test.dart';

void main() {
  late int int1;
  late int int2;

  setUp(() {
    int1 = 1;
    int2 = 2;
  });

  test(
    'Check int1 and int2',
    () {
      print(int1);
      print(int2);
    },
  );
}

Null 安全。 RIP。 添加late关键字以在第一次读取时初始化变量,而不是在创建时初始化。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM