标量测试中的补丁



我是 scala 的新手,scalatest 也是如此。

我的目标是为以下一小段代码编写一个单元测试:

import java.sql.SQLException
import com.typesafe.scalalogging.LazyLogging
import slick.jdbc.MySQLProfile.api._
import scala.concurrent.{ExecutionContext, ExecutionContextExecutor, Future}
object DbCreator extends LazyLogging {
implicit val ex: ExecutionContextExecutor = ExecutionContext.global
def createDatabaseIfNotExist(): Future[String] = {
Database
.forURL(url = "some host", user = "user", password = "pass", driver = "driver")
.run(sqlu"CREATE DATABASE ...").map(_ => "created")
.recover {
case e: Throwable => {
logger.error("Error!", e)
throw new SQLException(e.getMessage)
}
}
}
}

我以前使用过python,它具有补丁概念。

所以我的想法是修补正在导入并在createDatabaseIfNotExist中使用的Database类,以便我可以验证不同的场景。

不幸的是,我在标量测试中找不到等效/类似的概念。

我错过了吗?

我的方法错了吗?如果是这样,你会如何建议我为createDatabaseIfNotExist方法编写 UT?

当前的DbCreator实现是否不够可测试?

非常感谢所有的帮助!

我看到几个选项:

  • Scalamock 或一些 Java 模拟库
  • 助手 JDBC 驱动程序(具有 scala DSL(
  • 嵌入式 MySQL

最新更新