我正在尝试为 Junit5 编写类似于 Junit4 的扩展,但我无法掌握如何在新的(无状态)扩展系统中做到这一点。
以前版本的想法是用户可以将信息传递给扩展类,从而改变它的行为方式。这是一个伪片段,大致显示了用于做什么:
public void MyTest {
// here I can define different behaviour for my extension
@Rule MyCustomRule rule = MyCustomRule.of(Foo.class).withPackage(Bar.class.getPackage).alsoUse(Cookies.class);
@Test
public void someTest() {
// some test code already affected by the @Rule
// plus, user has access to that class and can use it, say, retrieve additional information
rule.grabInfoAboutStuff();
}
}
现在,我知道如何操作 JUnit 5 扩展,使用哪些生命周期等。但我不知道如何赋予测试编写者使用 JUnit5 修改我的扩展行为的能力。任何指针表示赞赏。