2017-02-04 177 views
0

我試圖用蓋布+斯波克做網絡自動化測試,但它一直告訴我:無法找到spock.lang.Specification

Caught: java.lang.NoClassDefFoundError: spock/lang/Specification 
Caused by: java.lang.ClassNotFoundException: spock.lang.Specification 

而且我覺得我已經添加的東西斯波克可能需要...?

@Grapes([ 
    @Grab('org.gebish:geb-core:1.1.1'), 
    @Grab('org.seleniumhq.selenium:selenium-chrome-driver:2.42.0'), 
    @Grab('org.seleniumhq.selenium:selenium-support:2.42.0'), 
    @Grab('org.gebish:geb-spock:1.1.1') 
]) 

import geb.spock.GebSpec 
import spock.lang.* 

class GoogleSpec extends GebSpec{ 
    def "Google search"() { 
     given: 
     to GooglePage 

     when: 
     searchBox.value == "Dogs" 

     and: 
     searchButton.click() 

     then: 
     at ResultPage 
    } 
} 
+0

我剛剛修復了您的語法突出顯示。您的摘要是**而不是** JavaScript。 – kriegaex

+0

ooops,謝謝!!!我沒有注意到它。 – wipi

回答

0

好吧,也許你也想依賴添加到

  • 斯波克本身:
    org.spockframework:spock-core:1.0-groovy-2.4
  • 可選,如果你想嘲笑類(除接口)的斯波克:
    cglib:cglib-nodep:3.2.4
  • 可選地,如果你覺得在Spock中模擬最終類的衝動(請不要,它是邪惡的!)和沒有默認構造函數的類(這很好):
    org.objenesis:objenesis:2.2

我對Gradle沒有任何瞭解,但是我在Maven中使用過這些東西。

P.S .:也許下一次你想使用你最喜歡的網絡搜索引擎來尋找示例項目或文檔。你應該找到很多。

+0

我曾經看過很多例子......但很多都只是一小段,讓我很困惑。我幾天前纔開始瞭解它......非常感謝您的幫助:) – wipi

0

是的 - 你需要spock-core而不是spock-parent或其他東西。

org.spockframework:spock-core:1.1-groovy-2.4-rc-3