2012-06-20 60 views
1

我最近偶然發現了geb,它看起來像是一種在我們的Web應用程序上執行集成測試的好方法。我們的平臺是基於所有的Java和讀取從java類運行geb測試

「蓋布通過 與流行的測試框架,如... JUnit的,TestNG的 集成提供功能的web測試了一流的支持......」

我認爲從java類(testng測試?)執行測試很容易。

我是新來groovy和geb。

到目前爲止,我還包括GEB-TestNG的和Groovy在我的POM:

<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類運行它的任何實例。

幫助讚賞。

回答

1

Geb專爲Groovy代碼設計,且只能使用Groovy代碼。這主要是由於其API的動態性。你所選的可以選擇的是是使用哪個測試框架(JUnit,TestNG,Spock等)。由於Geb本身就是一個庫,它也可以在沒有測試框架的情況下使用,例如自動與網站進行交互。

如果您需要堅持使用Java,您將不得不使用Selenium2,這是Geb在封面下使用的內容。

1

在搜索Geb-TestNG示例時,我st upon了這個問題。這裏是爲我工作:

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


class GroovyYourTestClass extends GebTest { 

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

的最佳替代蓋布,如果你使用的是Java是恕我直言,硒從快速入門指南(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,黃瓜,ScalaTest,JBehave