2011-12-16 63 views
1

我是JSF的新手,當我試圖從我的代碼調用FacesContext.getCurrentInstance()。getPartialViewContext()時,發生NullPointerException。 我正在測試一些構建在jsf上的模塊,所以我使用myfaces構建了FacesContext的模擬對象。 我的代碼看起來像 -在創建模擬對象時從FacesContext.getCurrentInstance()。getPartialViewContext()中獲得null

facesContext = new MockFacesContext20(); System.out.println(FacesContext.getCurrentInstance()。getPartialViewContext());

請幫我舉個例子......! 有沒有辦法用自定義的PartialViewContext來初始化模擬FacesContext對象?

回答

0

FacesContext是一個單例,因此不適合大多數嘲諷框架。

阿帕奇頁岩項目旨在解決這個問題,但是它退休年前:

http://shale.apache.org/

即使它不再被支持,我已經在我的項目相對成功使用它,但是我的一般建議是將業務邏輯放在ManagedBean之外。我喜歡在業務邏輯層中保持單元測試的業務邏輯,而我的託管bean像包裝器一樣工作,從FacesContext中檢索參數和信息並將其作爲參數傳遞給業務邏輯方法調用。

它更適合TDD,而不必擔心使用退役項目的軟件。

+0

我只想獲得PartialViewContext,以便測試我的應用程序。我已經實現了myfaces測試框架。頁岩可能會不會得到NPE? – 2011-12-16 13:06:53

相關問題