从java类运行geb测试

时间:2012-06-20 00:48:10

标签: java groovy geb

我最近偶然发现了geb,这似乎是对我们的网络应用程序执行集成测试的好方法。我们的平台都是基于java的,并且可以阅读

  

“Geb通过提供一流的功能性网络测试支持   与流行的测试框架集成,例如... JUnit,   TestNG的......“

我认为从java类(testng测试?)执行测试会很容易。

我是groovy和geb的新手。

到目前为止,我已经在我的pom中加入了geb-testng和groovy:

<dependency>
    <groupId>org.codehaus.geb</groupId>
    <artifactId>geb-testng</artifactId>
    <version>0.7.0</version>
</dependency>
<dependency>
    <groupId>org.codehaus.groovy</groupId>
    <artifactId>groovy</artifactId>
    <version>1.8.6</version>
</dependency>

...但是我找不到任何创建测试并从java类运行它的例子。

帮助表示赞赏。

3 个答案:

答案 0 :(得分:3)

Geb是为Groovy代码设计的,并且只能在其中使用。这主要是由于其API的动态特性。您可以选择的是要使用的测试框架(JUnit,TestNG,Spock等)。由于Geb本身只是一个库,它也可以在没有测试框架的情况下使用,例如自动化与网站的交互。

如果你需要坚持Java,你将不得不使用像Selenium2这样的东西,这是Geb在幕后使用的。

答案 1 :(得分:1)

我在搜索Geb-TestNG示例时遇到了这个问题。以下是对我有用的内容:

import geb.testng.GebTest
import org.testng.annotations.Test


class GroovyYourTestClass extends GebTest {

    @Test
    void "should test something"() {
        to YourPageObject
        // ...
    }
}

答案 2 :(得分:0)

如果您正在使用Java,那么Geb的最佳替代方案是恕我直言(http://selenide.org

快速入门指南中的示例:

@Test
public void userCanLoginByUsername() {
  open("/login");
  $(By.name("user.name")).setValue("johny");
  $("#submit").click();
  $(".loading_progress").should(disappear); // Waits until element disappears
  $("#username").shouldHave(text("Hello, Johny!")); // Waits until element gets text
}

它独立于您的测试框架,因此可以与您的测试框架一起使用。 JUnit,TestNG,Cucumber,ScalaTest,JBehave