2017-03-17 3 views
0

Ich versuche, für tapestry 5.4 Seiten-Rendering einen JUnit-Test zu schreiben:Tapestry Seite JUnit-Test

import org.apache.tapestry5.test.PageTester; 

public class LoadTest { 
    private final String PAGE_NAME = "Login"; 
    private final String APP_NAME = ""; 
    private final String context = "src/main/webapp"; 
    private PageTester tester; 

    @Before 
    public void init() { 
     String appPackage = "hu.webapp"; 
     tester = new PageTester(appPackage, APP_NAME, context, AppModule.class); 
    } 

    @Test 
    public void confirmIndexIsLoaded() { 
     Document document = new Document(); 
     document = tester.renderPage(PAGE_NAME); 
     assertNotNull(document); 
    } 
} 

Aber ich habe eine RuntimeException, und es wird gesagt Request was not handled: 'Login' may not be a valid page name.

Aber das ist eine Arbeits Seite in meinem Webapp und es macht gut.

Haben Sie jemanden eine Idee, was ist falsch mit Test oder kann mir jemand eine ähnliche Arbeit Testcode zeigt?

Vielen Dank im Voraus!

Antwort

1

Im Allgemeinen passiert das nur, wenn Sie das falsche package für das Paket Ihrer Seite informieren. Werfen Sie einen Blick (es funktioniert für mich):

import org.apache.tapestry5.test.PageTester; 

public class LoadTest { 
    private final String PAGE_NAME = "Login"; // It has to be right too! 
    private final String APP_NAME = "app"; // Where was your app name? 
    private final String context = "src/main/webapp"; // Is that path right in your project? 
    private PageTester tester; 

    @Before 
    public void init() { 
     String appPackage = "hu.webapp"; // Check if that's really correct!!! 
     tester = new PageTester(appPackage, APP_NAME, context); 
    } 

    @Test 
    public void confirmIndexIsLoaded() { 
     Document document = tester.renderPage(PAGE_NAME); 
     assertNotNull(document); 
    } 
} 

Überprüfen Sie auch Ihre app Namen, sollte es in Ihrem web.xml als Tapestry Filter konfiguriert wurden, wie in, zum Beispiel:

<filter> 
    <filter-name>app</filter-name> 
    <filter-class>org.apache.tapestry5.TapestryFilter</filter-class> 
</filter> 

<filter-mapping> 
    <filter-name>app</filter-name> 
    <url-pattern>/*</url-pattern> 
    <dispatcher>REQUEST</dispatcher> 
    <dispatcher>ERROR</dispatcher> 
</filter-mapping> 
+0

Hallo! Danke für die Antwort. Eigentlich gibt es einen Mangel an Informationen über Tapisserie-Tests .. Ich lese einige Artikel .. aber jeder Artikel schlägt verschiedene Sachen vor ... so am Ende haben sie mich verwirrt .. so wurde es ein "Black-Box-Test" .. sowieso Der Kontext bedeutet den absoluten Pfad meines Projekts oder einen relativen Pfad von etwas? – LakiGeri

+0

Ich habe es herausgefunden! 'private final Zeichenfolge PAGE_NAME =" Login "; private endgültige Zeichenfolge APP_NAME = "app"; private final String Kontext = "src/main"; ' und ich verließ die" .ui "- Endung von' appPackage' thx für die Hilfe – LakiGeri

+0

Gern geschehen! :) – bosco

Verwandte Themen