1

我是 JUnit 的新手,并试图在遗留项目中实现它。它是一个 Java EE 项目。它的 UI 层在 Flex 中,后端有 Hibernate 作为带有 SQL Server 数据库的 ORM 层。它在 Tomcat 上运行。

我正在采取一些步骤来自己学习 JUnit 并将其实现到代码库中。有一个类有它的findByFK方法。如果找到任何类对象,此方法将返回一个类对象数组。

该方法在 Web 应用程序上运行良好,但我无法运行其 JUnit 测试用例。测试用例不在容器中,无法访问数据源。

如何在容器内运行 JUnit 测试用例?

我刚刚开始使用 JUnit,不想因为集成问题而使其过于复杂。有什么办法可以解决这个问题,而无需对数据源和 Web 服务器等进行存根处理?

4

2 回答 2

5

Arquillian 测试允许您在容器内运行单元测试。

做类似的事情:

@RunWith(Arquillian.class)
public class Test {
    @Test
    public void test(){
    //your test
    }
}

将允许您在容器中部署测试,使其能够访问您的数据库。

于 2013-03-20T13:27:25.340 回答
-1

您在这里有 2 个选项:

  1. 使用设置带有数据源的数据库的跑步者(或其他人)开始测试,就像来自 phoenix7360 的答案一样。但这实际上并不是每个定义的单元测试。
  2. 使用EasyMockMockito等 Mocking 框架模拟与 DB 的交互。

如果你真的想做单元测试,我会选择第二个选项。但是您的设置并不完全是单元测试,而是一种集成测试。

于 2013-03-20T13:31:33.417 回答