使用JUnit进行容器内测试

时间:2013-03-20 13:17:45

标签: java hibernate unit-testing junit integration-testing

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

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

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

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

我刚刚开始使用JUnit,并且不希望因集成问题而过度复杂化。有没有办法解决数据源和Web服务器等问题?

2 个答案:

答案 0 :(得分:5)

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

做类似的事情:

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

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

答案 1 :(得分:-1)

这里有2个选项:

  1. 使用跑步者(或其他方式)开始测试,他使用数据源设置数据库,就像在answer from phoenix7360中一样。但这实际上并不是每个定义的单元测试。
  2. 使用模拟框架(例如EasyMockMockito)模拟与数据库的交互。
  3. 如果你真的想做单元测试的话,我会选择第二个选项。但是你的设置并不完全是单元测试的一种集成测试。