【问题标题】:Flutter unit testing with provider与提供者一起进行 Flutter 单元测试
【发布时间】:2023-01-10 13:01:12
【问题描述】:

我无法在单元测试中使用提供程序 我正在使用以下代码。我收到这个错误

00:02 +2 -1: test student controller with add and remove student test controller for add new set [E]                                            
  Null check operator used on a null value
  package:provider/src/provider.dart 274:20  Provider.of
  test/student_controller_test.dart 53:22    main.<fn>.<fn>
  test/student_controller_test.dart 36:53    main.<fn>.<fn>

类 MockBuildContext 扩展 Mock 实现 BuildContext {}

void main() {
  late MockBuildContext _mockContext;

  setUpAll(() {
    _mockContext = MockBuildContext();
  });


test('test student controller for add new student', () async {
      List<Students> sts = [
        Students(
            name: 'Barbels',
            age: 21,
            weight: 70,
          ),
         Students(
            name: 'Hazel',
            age: 31,
            weight: 60,
          ),
      ];
      var id = '1';
      print(_mockContext);
      MyController.saveStuden(_mockContext, id, sets);
      print(Provider.of<StudentProvider>(_mockContext, listen: false)
          .items
          .length);
});

【问题讨论】:

    标签: flutter unit-testing dart flutter-provider


    【解决方案1】:

    您需要注册要在测试前运行的控制器。

    void main() {
    
      late MockBuildContext _mockContext;
      late MyController _controller;
    
      setUpAll(() {
        _controller = MyController();
        _mockContext = MockBuildContext();
      });
    
    
    test('test student controller for add new student', () async {
          List<Students> sts = [
            Students(
                name: 'Barbels',
                age: 21,
                weight: 70,
              ),
             Students(
                name: 'Hazel',
                age: 31,
                weight: 60,
              ),
          ];
          var id = '1';
          print(_mockContext);
    
          _controller.saveStuden(_mockContext, id, sets);
    
          print(Provider.of<StudentProvider>(_mockContext, listen: false)
              .items
              .length);
    });
    

    【讨论】:

      猜你喜欢
      • 2020-05-01
      • 1970-01-01
      • 2021-10-30
      • 1970-01-01
      • 2021-11-24
      • 1970-01-01
      • 1970-01-01
      • 2017-08-23
      • 2017-02-02
      相关资源
      最近更新 更多