【问题标题】:How to test EJB Beans in OpenEJB with JUnit5?如何使用 JUnit5 在 OpenEJB 中测试 EJB Bean?
【发布时间】:2017-05-23 12:43:54
【问题描述】:

在 JUnit 4 中,我使用以下设置来测试我的 EJB bean:

@RunWith(EJBContainerRunner.class)
public class MyEETestWithOneOpenEJB {
    @Inject
    private ACdiBean bean;
 
    @Test
    public void theTest() {
        // do test
    }
}

但在 JUnit 5 中,不再有 @RunWith(...)

问题:如何使用 JUnit 5 进行测试?

【问题讨论】:

    标签: unit-testing ejb junit5 apache-tomee openejb


    【解决方案1】:

    您需要编写自己的 EJBContainerExtension 来替换 Runner 或找到一个已经存在的。不幸的是,后者目前不太可能,JUnit5 还没有在 GA 中,也没有太多官方扩展。

    If you want to, read about JUnit 5 extension model here

    【讨论】:

      【解决方案2】:

      TomEE 8(自 8.0.7 起)仅支持使用 JUnit 5 进行测试(没有对 JUnit 4 的暂时依赖)。

      传统方式

      旧版 EJBContainerRunner 已被相关的 JUnit 5 扩展取代。

      如果您使用的是 Maven,则需要将以下依赖项添加到您的 pom 文件中:

          <dependency>
               <groupId>org.apache.tomee</groupId>
               <artifactId>openejb-junit5-backward</artifactId>
               <version>8.0.9</version>
               <scope>test</scope>
           </dependency>
      

      后续可以替换

      @RunWith(EJBContainerRunner.class)
      

      @RunWithEjbContainer
      

      这是一个纯粹的 JUnit 5 扩展。无需将任何 JUnit 4 依赖项添加到您的类路径中。使用示例可以在 TomEE GitHub 存储库的module's test source 中找到。

      现代方式

      在同一版本中,ApplicationComposer 得到了增强,以支持 JUnit 5 作为扩展。要使用它,请添加

          <dependency>
               <groupId>org.apache.tomee</groupId>
               <artifactId>openejb-junit5</artifactId>
               <version>8.0.9</version>
               <scope>test</scope>
           </dependency>
      

      到你的类路径。 ApplicationComposer 不需要类路径扫描,并且比上述替代方案更快。

      只需将 @RunWithApplicationComposer 添加到您的 JUnit 5 测试类。默认情况下,容器生命周期与测试实例的生命周期绑定。但是,也可以使用其他模式:

      • PER_EACH:每个测试方法都启动一个容器
      • PER_ALL: 为每个测试类启动一个容器
      • PER_JVM: 每个 JVM 启动一次容器
      • AUTO(默认):根据测试实例生命周期启动容器。

      可以在TomEE GitHub repository 的示例部分找到一个示例。

      【讨论】:

      • 可能有 c&p 问题吗?我认为您的意思是现代方式章节中的 artifactId“openejb-junit5”,对吗?如您上一个链接中所述。
      • 是的。你说的对。我更新了 maven sn-p
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-21
      • 2023-03-17
      • 1970-01-01
      • 1970-01-01
      • 2019-10-14
      • 2017-07-14
      相关资源
      最近更新 更多