我有一個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