[英]Mocking a Superclass in Spock
如何對一個在 Spock 中具有從其超類調用方法調用的超類的類進行單元測試? 或者你如何在 Spock 中模擬一個超類?
前任:
class Bar {
def method1(parm1){
//Method actions
}
}
class Foo extends Bar {
def method2(param1, param2) {
//Method actions
super.method1(param1)
}
}
如何模擬Bar
類的行為?
您可以將您的類Foo
用作Spy
。 間諜將創建您的類Foo
的實例,但使您可以模擬在您的間諜類層次結構中聲明的任何公共方法。
def fooInstance = Spy(Foo)
fooInstance.method1(_) >> 'return value'
以下代碼將幫助您指定實際調用的方法。
setup:
def fooInstance = Spy(Foo)
when: "this try-catch block is debug code"
try {
// do something with Foo or Bar
}
catch (Exception e) {
}
then:
0 * fooInstance._
這個網站可能有用。 ->Spock 模擬備忘單
如果您使用 Spock 測試 Kotlin 類,則需要open
超類方法以便 Spock 可以存根它們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.