【问题标题】:Unit test of a child class in dart飞镖中子类的单元测试
【发布时间】:2021-05-03 17:22:38
【问题描述】:

我能够为父类编写单元测试,但我被困在子类上。如何编写子类的单元测试。

class Parent {

  SomeService _someService;
  SomeService get someService => _someService;
  
  Parent() {
    this._someService = SomeService();
  }
  
  Parent.withService(this._someService);

  Map<String, dynamic> getResult() {

    return _someService.getResult();
  }
}

class Child extends Parent {
  
  int useResult() {
   return someService.useResult();
  }
}

我可以通过模拟 SomeService 类来使用 mockito 测试 Parent 类。我不得不为此使用构造函数Parent.withService()。我一直在测试子类的方法。如何测试子类的方法?谢谢。

【问题讨论】:

    标签: flutter unit-testing dart mockito


    【解决方案1】:

    我会让服务成为一个可以传递给类的命名变量:

    class Parent {    
      SomeService? _someService;
      SomeService get someService => _someService;
      
      Parent({SomeService? someService}) {
        this._someService = someService??SomeService();
      }
    
      Map<String, dynamic> getResult() {
        return _someService.getResult();
      }
    }
    
    class Child extends Parent {
      Child({SomeService? someService}):super(someService);
      
      int useResult() {
       return someService.useResult();
      }
    }
    

    【讨论】:

    • 我必须将命名构造函数添加到所有子类中,有很多,但它有效。非常感谢
    猜你喜欢
    • 2013-11-09
    • 2016-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多