我是测试框架的新手,对测试知之甚少,但我想为这里的场景编写一个单元测试用例。
到目前为止,我知道应该在其基础上构建一个特征,并让该实用程序扩展该特征,但在那之后我发现继续操作并不困难。
object utility{
def abc(a: String, b: Int ): String={}
def bcd(): Int = {}
}
我正在使用 flatspec 和 MockFactory
scala 2.11
和 sbt
具有以下依赖项libraryDependencies += "org.scalamock" %% "scalamock" % "4.1.0" % "test",
libraryDependencies += "org.scalatest" %% "scalatest" % "3.0.4" % "test"
您的帮助将不胜感激
谢谢
最佳答案
通常你会做某事。像这样:
trait Utility {
def abc(a: String, b: Int ): String
def bcd(): Int
}
object RealUtil extends Utility {
def abc(a: String, b: Int ): String= ??? //real implementation
def bcd(): Int = ???
}
class UsesUtil(util: Utility) {
def doSth(): Int = util.bcd()
}
// allows prod usage like this UsesUtil().doSth
object UsesUtil {
def apply(util: Utility = RealUtil): UsesUtil = new UsesUtil(util)
}
class HereAreTests {
// use in tests
val mockedUtility = new Utility {
def abc(a: String, b: Int ): String= "mock"
def bcd(): Int = 42
}
// test here
val useUtilClass = new UsesUtil(mockedUtility)
val resultFromMock = useUtilClass.doSth()
assert(resultFromMock == 42)
}
关于scala - 如何在 Scala 中模拟包含实用程序函数的对象文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50038531/