为 extending a class 编写有意义的测试的正确方法是什么?使用 super
关键字?
class FooBase<T> {
final T data;
const FooBase(this.data);
}
class Foo<T> extends FooBase<T> {
const Foo(T data)
: super(data);
}
最佳答案
我认为super(data)
是将构造函数参数传递给基类的构造函数(我对dart了解不多)。
您只能通过观察其行为来测试是否调用了 super
。您必须检查基类构造函数以了解它对参数执行的操作,然后查看是否可以观察是否发生了这种情况(如果可能)。示例:如果基类构造函数将参数分配给可以从外部访问的字段,则可以对正在设置的参数进行断言。这仅在以下情况下有效
- 您可以通过测试代码访问该字段。在此上下文中的访问并不意味着直接访问它或通过 getter 访问它。任何观察该字段已设置的方法都应该足够了。
- 被测试的类本身没有设置字段(可能无法确定哪个构造函数设置该字段)。
关于flutter - 如何为 `extending a class` 编写有意义的测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66365339/