簡體   English   中英

在 Spock 中模擬超類

[英]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.

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