2017-03-17 2 views
0

나는 tapestry 5.4 페이지 렌더링을위한 JUnit 테스트 작성하려고 :태피스트리 페이지 JUnit 테스트

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); 
    } 
} 

을하지만 나는 RuntimeException을 가지고, 그것은

Request was not handled: 'Login' may not be a valid page name. 말했다 그러나 이것은 내 웹 애플리케이션에서 작동하는 페이지입니다 , 그리고 그것은 잘 렌더링됩니다.

테스트에 문제가 있거나 다른 사람이 나에게 비슷한 작동 테스트 코드를 보여줄 수 있습니까?

미리 감사드립니다.

답변

1

일반적으로 이는 페이지 패키지에 대해 package을 잘못 알린 경우에만 발생합니다. (나를 위해 작동)을 살펴보십시오 :

<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

: 또한

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); } } 

당신의 app 이름을 확인, 그것은, 예를 들어, 태피스트리 필터로 당신의 web.xml에서 구성처럼되어 있어야합니다 이봐 요! 답변 해주셔서 감사합니다. 사실 태피스 트리 테스트에 관한 정보가 부족합니다 .. 몇 가지 기사를 읽었습니다 ..하지만 모든 기사는 다른 것들을 제안합니다 .. 결국 그들은 나를 혼란스럽게 만들었습니다 .. 그래서 그것은 일종의 "블랙 박스 테스트"가되었습니다 .. 어쨌든 '문맥'은 내 프로젝트의 절대 경로 또는 상대 경로를 의미합니까? – LakiGeri

+0

나는 알아 냈다! '개인 최종 문자열 PAGE_NAME = "로그인"; 비공개 최종 문자열 APP_NAME = "app"; 개인 최종 문자열 컨텍스트 = "src/main"; 과'apppackage'의 ".ui"결말을 남겼습니다 thx ( – LakiGeri

+0

) :) – bosco