Junit测试Spring服务和DAO层

时间:2011-12-22 09:05:11

标签: spring unit-testing junit dao

我正在开发Spring应用程序(Spring 3.0)和分层架构,即Controller -> Service -> DAO layers

我想使用 Junit 为服务和DAO层编写单元测试用例 我检查了Spring官方网站,并尝试了许多其他网站,但无法找到一种简单易行的方法。

有人能为我提供一些有用的资源吗?


编辑:
看起来Mockito是不错的选择。在Spring中使用它的任何好的链接。

谢谢Alex建议。

2 个答案:

答案 0 :(得分:26)

在资源方面,Spring的测试文档非常好。这可以找到here

当您测试服务层时,您将需要使用模拟库(如Mockito)来模拟您的DAO,从而模拟您的域层。这可以确保它们是真正的单元测试。

然后,要对数据库进行集成测试,您可以使用该参考文档中描述的Spring事务测试实用程序。

答案 1 :(得分:4)

对资源知之甚少,但如果你的dao + spring设置很好,那就不难了。您需要以下内容:

  1. JUNIT依赖关系。与maven,类似的东西:

    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.8.2</version>
    </dependency>
    
  2. 测试类,放在src / test / java:

    @TransactionConfiguration(defaultRollback = true)
    @ContextConfiguration({ "classpath:test-spring-context.xml" })
    @Transactional  
    @RunWith(SpringJUnit4ClassRunner.class)  
    public class SomeTests { 
        // ...
    }
    
  3. 弹簧设置的上下文文件引用放置在src / test / resources中的DAO数据源。 test-spring-context.xml中的某个地方:

    <import resource="datasource-test.xml" />
    
  4. 现在,例如在eclipse中,您可以将项目作为JUNIT测试运行。

    需要更多详情?这个解决方案适用吗?