簡體   English   中英

禁用全局Spock Mock類進行一項測試

[英]Disable global Spock Mock class for one test

您好,我在設置方法中有一個全局Mock,但想在同一類的一項測試中將其禁用。 可能嗎?

class Test extends Specification {

  void setup() {
    GroovyMock(Utils, global: true)
    Utils.getRemoteBranches(*_) >> new ArrayList<String>()
  }

  void "test1"() {
    given:
    Object context = getContext()

    when:
    ...

您可以重命名setup方法,然后在given步驟中調用它。 Spock中還有一個setup關鍵字。 它與given含義相同。

例如,像這樣:

class Test extends Specification {

  void setupMock() {
    GroovyMock(Utils, global: true)
    Utils.getRemoteBranches(*_) >> new ArrayList<String>()
  }

  void "testWithMock"() {
    given:
    setupMock()
    Object context = getContext()

    when:
    // ...

  void "testWithoutMock"() {
    given:
    Object context = getContext()

    when:
    // ...

  }

在某種程度上,我同意有關測試可讀性的評論,如果沒有Mock的測試相對重要,則應考慮創建單獨的Specification

暫無
暫無

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

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