【问题标题】:Getting started with JMock and Spring 3JMock 和 Spring 3 入门
【发布时间】:2023-04-01 21:03:01
【问题描述】:

我已经开始学习 JMock。我的目标是为 Spring 应用程序编写 JUnit 测试,也就是控制器和域类。在控制器中,来自数据库和其他服务的数据被放入模型中。我需要确保数据对于测试是持久的,所以基本上我需要在测试之前将测试数据放入数据库,然后将其删除。我想这可以通过模拟对象来完成,而不是自动装配真正的 bean。

我已经用谷歌搜索过了。有些页面说只能模拟接口。有人说所有对象都可以模拟。甚至有人说不应该嘲笑 DAO。我很困惑。

谁能告诉我,JMock 在 Spring 应用程序测试中是否必不可少以及从哪里开始?

【问题讨论】:

  • 为了在测试前保存数据并在测试后删除,您不需要使用jMock库。您可以简单地使用 JUnit 框架中的 @Before@After 注释。
  • 我知道。数据随数据源来来去去,通常是自动装配的——但它应该在测试中模拟吗?这是我的问题之一。

标签: java spring junit jmock


【解决方案1】:

  • 您希望在没有任何持久存储的情况下动态构建数据对象并在测试期间使用它。
  • 您想模拟一个操作而不实际运行它。

在您的情况下,您有测试数据源,除了数据在测试前阶段加载并在测试后阶段清除。因此,您不需要为此目的进行嘲笑。

如果您想模拟对某个控制器的调用而不调用控制器中的实际代码,则需要模拟。

我们在哪里做类似的事情

  • 我们的测试数据采用 JSON 格式,并在我们的测试套件启动时(使用自定义加载器)加载到内存中的 HSQL 数据库中。
  • 我们的外部服务客户端是模拟的,因此我们不会在测试期间调用服务,而是返回模拟的响应。
  • 在测试结束时,HSQL DB 被简单地丢弃,因此无需清除测试数据。

HTH。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-03
    • 1970-01-01
    • 1970-01-01
    • 2014-09-13
    • 2017-12-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多