【问题标题】:how to write a meaningful test for `extending a class`?如何为“扩展课程”编写有意义的测试?
【发布时间】:2021-02-25 09:00:39
【问题描述】:

使用super 关键字为extending a class 编写有意义的测试的正确方法是什么?

class FooBase<T> {
  final T data;
  const FooBase(this.data);
}

class Foo<T> extends FooBase<T> {
  const Foo(T data)
      : super(data);
}

【问题讨论】:

    标签: flutter unit-testing dart testing constructor


    【解决方案1】:

    我想super(data) 是将构造函数参数传递给基类的构造函数(我对 dart 了解不多)。

    您只能通过观察其行为来测试是否调用了 super。您必须检查基类构造函数以了解它对参数所做的事情,然后查看是否可以观察是否发生了这种情况(如果可能)。示例:如果基类构造函数将参数分配给您可以从外部访问的字段,您可以断言正在设置的参数。这仅适用于

    1. 您可以从测试代码访问该字段。 访问 在此上下文中并不意味着直接或通过 getter 访问它。任何观察该字段已设置的方法都应该足够了。
    2. 被测类本身没有设置字段(可能无法确定哪个构造函数设置了该字段)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-12-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多