【问题标题】:How to test Dao objects with ScalaTest如何使用 ScalaTest 测试 Dao 对象
【发布时间】:2016-05-12 19:57:30
【问题描述】:

我想了解测试 dao 对象的最佳实践。我有几个 dao 对象通过独立 scala 应用程序中的异常与 db 交互。

我想用 ScalaTest 为这些对象编写集成测试。它应该在不同的数据库上运行测试。

【问题讨论】:

  • 这听起来更像是您想要进行存储库测试而不是 dao 测试,是这样吗?
  • 我想确保 dao 方法按预期工作,如果它被称为存储库测试,那么是的。也许我使用了错误的术语。

标签: scala tdd integration-testing scalatest


【解决方案1】:

正如您提到的,这是与数据库交互的独立 Scala 应用程序,您可以使用 ScalaMock。

作为原生的开源 Scala 模拟框架 ScalaMock 支持三种不同的模拟风格:

  1. 函数模拟
  2. 代理(动态)模拟
  3. 生成的(类型安全的)模拟

要使用 ScalaMock,请将 org.scalamock.scalatest.MockFactory 混合到您的 Suite 类中,如下所示:

import org.scalatest.FlatSpec

import org.scalamock.scalatest.MockFactory

class ExampleSpec extends FlatSpec with MockFactory with ...

【讨论】:

  • 如何帮助测试 sql 内容是否按预期工作?
  • 如果您想测试 SQL 是否正常工作,您可能需要使用为测试引导的数据库实例进行集成测试。
  • 你可以创建一个特征,比如说DAO,它将任何对象持久化到某种数据库,可能是内存数据库。由于 DAO 是一种特性,因此它旨在混合到一个具有特定类型数据存储的具体实现的类中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-05
  • 2018-12-15
  • 2021-05-24
  • 2017-10-22
  • 1970-01-01
  • 2010-09-28
相关资源
最近更新 更多