文档中@RegisterExtension
提到了有关实例注入的一些内容:
扩展将在测试类被实例化后注册,并且在所有
TestInstancePostProcessor
s 都有机会对测试实例进行后处理(可能将要使用的扩展实例注入到带注释的字段中)。
JUnit 中是否有任何后处理器可以自动为扩展执行此操作,或者这只是在谈论人们将来可能构建的东西?
在我们的案例中,我发现我们的许多扩展都是这样的:
@RegisterExtension
public final TempFolderExtension temp = new TempFolderExtension();
@RegisterExtension
public final SomeFactoryExtension factory = new SomeFactoryExtension(temp);
像 PicoContainer 这样的容器可以自动找出如何构造实例。
如果我们能写出来,那就太好了,
@RegisterExtension
public TempFolderExtension temp;
@RegisterExtension
public SomeFactoryExtension factory;
注释处理器或运行时注入器都可以填充其余部分。
这种扩展之间的依赖关系也对它们应该运行的顺序产生影响。