簡體   English   中英

是否可以使用 ScalaMock 模擬/存根同一測試類的方法?

[英]Is it possible to mock / stub methods of the same test class with ScalaMock?

對於 Mockito 和其他測試框架,通常有多種方法可以模擬測試類中方法的功能。 我似乎無法讓 ScalaMock 以同樣的方式接受。

class A {
 def methodUnderTest()
 def methodUsedInMethodUnderTest()
}

然后在測試課中我是:

(A.methodUsedInMethodUnderTest _)
.expects.....
a.methodUnderTest shouldEqual ..

我知道,如果您模擬/刪除類,然后在真實實例上調用相同的功能,這將不起作用。 但是通過對兩個調用等使用模擬有一些解決方法。

如果這是錯誤的方法,那么測試在同一測試類中使用其他方法的方法的最佳方法是什么? 我認為將方法解耦是最佳實踐。

謝謝!

如果我沒有理解你的問題,你可以創建一個模擬A ,然后告訴ScalaMock執行真正落實methodUnderTest

val aMock = mock[A]

when(aMock.methodUnderTest).thenCallRealMethod()
when(aMock.methodUsedInMethodUnderTest).thenReturn(someValue)

aMock.methodUnderTest shouldEqual someOtherValue

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM