我有一个Scala对象,它包含一些实用函数。这些函数由同一对象或其他类/对象中存在的其他函数调用。是否有可能嘲笑这个对象或函数,以便我可以单元测试它们被调用的类。嘲笑Scala对象和函数
例子:
object Util {
def methodA() = {
//other code
methodB()
//other code
}
def methodB() = {
//other code
methodC()
//other code
}
def methodC() = { ... }
}
在这里,我从另一个类调用该对象的功能
class Data {
//other code
def call() = {
//other code
Util.methodA()
//other code
}
}
如何CA ñ我去单元测试类Data的函数调用()?在Java中,我可以为Util创建一个模拟对象,并设置对methodA()的调用的期望,但这在Scala中是不可能的,因为没有模拟库支持模拟Scala对象。
有许多scala模拟选项。例如,请参阅http://www.scalatest.org/user_guide/testing_with_mock_objects。任何快速搜索都会给你带来很多选择 –
是的我已经看到了你提供的链接,但是没有提到的那些模拟框架支持模拟Scala对象。 ScalaMock 2支持模拟对象,但在ScalaMock 3中已经停用,这是Scala 2.11编译器的最新版本。 – noober