2017-02-04 181 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