2012-11-21 36 views
0

我創建了一個鏈接頁面FooPage,當有人點擊此鏈接時,某些文字"test test"被重播給用戶,到目前爲止還不錯。Wicket測試錯誤:組件'BookmarkablePageLink'不是類型

我已經創建了folloing基本頁:

FooPage.java

public class FooPage extends WebPage { 
public FooPage() { 
    add(new Label("label", "test test")); 
     } } 

FooPage.html

<div wicket:id="label"></div> 

在MyPnel.java我添加了創建的頁面如下:

MyPanel.java

public class MyPanel extends Panel{ 
add(new BookmarkablePageLink<Void>("foobar", FooPage.class)); 
} 

MyPanel.html:

<a wicket:id="foobar" href="FooPage"></a> 

現在,當我用JUnit測試所創建的組件,如下所示:

@Test 
public void startPage() { 
    wicketTester.assertComponent("foobar", FooPage.class); 
} 

我得到以下錯誤:

junit.framework.AssertionFailedError: component 'BookmarkablePageLink' is not type:FooPage

任何想法有什麼問題或熱點來解決這個問題?

回答

2

正如伊恩所說,assertComponent檢查組件的類型是一個類的子類型。爲了您的用例,你應該使用

wicketTester.assertBookmarkablePageLink("foobar", FooPage.class, new PageParameters()); 
+0

這個作品非常感謝你:) –

2

如果你不嘗試

wicketTester.assertComponent("foobar", BookmarkablePageLink.class); 

,而不是(因爲ID 「FOOBAR」 的成分是BookmarkablePageLink類型的)?

+0

@lan Mashall:不,它是FooPage擴展頁面:(您的解決方案並沒有幫助 –

+1

@AhmedSalah,不,伊恩是正確的,assertComponent測試類的組件和。 「foobar」類是BookmarkablePageLink。你可以做的是讓wicketTester點擊鏈接並檢查你是否在你的FooPage上 – bert

相關問題