错误:必须先分配不可为 null 的变量“mockBuildContext”,然后才能使用它

Jar*_*cks 3 unit-testing mockito dart flutter flutter-test

我已经在 setUp() 方法中分配了变量,但仍然抛出错误。如果我将 MockBuildContext 设置为可为空,则测试运行成功,但这不是正确的方法。有什么我错过的或建议更好的方法来解决这个问题。

看我的代码:

void main(){

  MockBuildContext mockBuildContext;
  setUpGetIt(testing: true);

  setUp((){
    mockBuildContext = MockBuildContext();
  });

  group("banks test", (){

    test("Calling fetchAllBanks returns instance of BanksModel list", () async {

      banksBloc.init(mockBuildContext);
      await banksBloc.fetchAllBanks();
      banksBloc.allBanks?.listen((event) {
        expect(event, isInstanceOf<List<BanksModel>>);
      });

    });


  });
}
Run Code Online (Sandbox Code Playgroud)

我的错误日志:

C:\Src\flutter\bin\flutter.bat --no-color test --machine --start-paused test\unit_test\system\bank_configuration\banks_test.dart
Testing started at 18:52 ...
test/unit_test/system/bank_configuration/banks_test.dart:24:22: Error: Non-nullable variable 'mockBuildContext' must be assigned before it can be used.
      banksBloc.init(mockBuildContext);
                     ^^^^^^^^^^^^^^^^
Run Code Online (Sandbox Code Playgroud)

Akh*_*hah 7

添加问号MockBuildContext?以使其可为空,或者如果它不可为空则初始化它,或者在 start 中添加 Late 关键字late MockBuildContext mockBuildContext;