【问题标题】:EasyMock and IbatisEasyMock 和 Ibatis
【发布时间】:2011-07-07 15:36:46
【问题描述】:

在我的 DAO 层中,我通过调用存储过程来完成所有数据库工作。 我想知道是否有人成功地使用 EasyMock 测试了他们的 DAO 层?

谢谢 达米安

【问题讨论】:

    标签: java dao ibatis easymock data-access-object


    【解决方案1】:

    我会说这是不可能的。无法断言(使用 EasyMock 或其他模拟框架)DAO 实际调用了某个存储过程、验证它做了什么等。

    使用 DAO + EasyMock 唯一可以做的就是模拟/存根 DAO,但是您不是在测试 DAO,而是在测试 DAO 上的协作者(如果我们说的是 MVC,通常是某种控制器)。

    做DAO/StoredProcedures的集成测试我推荐DBUnit

    1. 将 testdata 放入数据库(如果您使用 jUnit,请在 @Before 方法中执行此操作)
    2. 在测试中调用 DAO 方法
    3. 如果方法返回任何结果,请将其与 (1) 中的预期数据进行比较
    4. 如果方法执行了一些插入/更新,则调用“读取方法”并将结果与​​ (1) 进行比较

    如果您的 DAO 为某些业务实体提供 CRUD,您可以测试您的 DAO 的每个操作:

    • testLoad - 从数据库加载并与 (1) 进行比较
    • testInsert - 将新实体插入数据库,然后重新加载并比较
    • testUpdate - 修改现有实体,保存到数据库并重新加载/比较
    • testDelete - 从 (1) 中删除一些实体,然后尝试加载它并断言它失败(也可以检查是否没有删除任何其他内容)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多