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