JUnit 5 似乎强烈建议不要使用继承来共享测试逻辑,而是说使用Extension
s。
因此,我们将事物重构为扩展。
我经常看到的是大量测试以编程方式添加相同的三个扩展。(这三个都是扩展,由于它们的性质,必须以编程方式添加......)
我可以实现一个添加这三个扩展的基类,但是我再次使用继承。
有没有更好的办法?
例如,这样的事情会很好:
public class AcmeTestExtension implements Extension {
@RegisterExtension
public final Extension1 extension1 = new Extension1();
@RegisterExtension
public final Extension2 extension1 = new Extension2();
@RegisterExtension
public final Extension3 extension1 = new Extension3();
// can add methods here which delegate through to individual extensions
}
public class MyTest {
@RegisterExtension
public final AcmeTestExtension extension = new AcmeTestExtension();
}