【发布时间】:2023-01-26 23:47:51
【问题描述】:
我有一个 JavaEE 应用程序,想在单元测试中使用 CDI。
目前我使用org.apache.openejb.junit5.RunWithApplicationComposer,我的单元测试如下所示:
@RunWithApplicationComposer(mode = ExtensionMode.PER_EACH)
@Classes(cdi = true, value = {
A.class,
B.class,
C.class,
...
Example.class
})
public class ExampleTest {
@Inject
private Example testInstance;
@Produces
public A produceA() {
...
}
@Test
public void test() {
assertEquals(4, testInstance.add(2, 2));
}
}
这里我只想测试Example.class,但是Example.class要运行,A,B,C必须是可注入bean。
我的问题是 @Classes-Annotation 的可重用性。
在我的例子中,它不仅是A,B,C,而且我需要大约 20 个类来进行大量单元测试。我不想在每个单元测试中一次又一次地使用带有 20 个类的 @Classes 注释。
我已经尝试了一个带有 @Classes-Annotation 的 SuperClass,它被我的单元测试扩展了,但这不起作用。
您知道在单元测试中制作这 20 个类的可注入 bean 的更通用和可重用的方法吗?
谢谢你的帮助 :)
【问题讨论】:
标签: java unit-testing cdi apache-tomee openejb