Junit 测试 Spring 服务和 DAO 层

新手上路,请多包涵

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

我想使用 Junit 为服务和 DAO 层编写单元测试用例。

我查看了 Spring 官方网站并尝试了许多其他网站,但无法找到一种简单易行的方法。

任何人都可以为我提供一些有用的资源吗?


编辑 :

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

谢谢亚历克斯的建议。

原文由 Ajinkya 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 755
2 个回答

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

当您测试您的服务层时,您将希望使用 Mockito 等模拟库来模拟您的 DAO,从而模拟您的领域层。这确保它们是真正的单元测试。

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

原文由 Alex Barnes 发布,翻译遵循 CC BY-SA 3.0 许可协议

对资源了解不多,但如果你有很好的 dao + spring 设置,这并不难。您将需要以下内容:

  1. JUNIT 依赖性很明显。使用 Maven,类似的东西:
    <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
       <version>4.8.2</version>
   </dependency>

  1. 放置在 src/test/java 中的测试类:
    @TransactionConfiguration(defaultRollback = true)
   @ContextConfiguration({ "classpath:test-spring-context.xml" })
   @Transactional
   @RunWith(SpringJUnit4ClassRunner.class)
   public class SomeTests {
       // ...
   }

  1. spring 设置的上下文文件引用了位于 src/test/resources 中的 DAO 数据源。在你的 test-spring-context.xml 中的某处:
    <import resource="datasource-test.xml" />

现在,例如在 eclipse 中,您可以将项目作为 JUNIT 测试运行。

需要更多详细信息?这个解决方案适用吗?

原文由 Pete 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题