たとえば、Mockitoなどのモック ライブラリを追加機能で拡張できるフレームワークであるPowerMockを使用できます。この場合、 の静的メソッドをモックできます。FacesContext
Mockito メソッドを使用すると、メソッドが呼び出されverify()
たことを確認できます。さらに、 のメソッド呼び出しに渡されたを取得するために をaddMessage()
使用できます。ArgumentCaptor
FacesMessage
addMessage()
FacesContext
@Test
public void testToPage2NotChecked() {
// mock all static methods of FacesContext
PowerMockito.mockStatic(FacesContext.class);
FacesContext facesContext = mock(FacesContext.class);
when(FacesContext.getCurrentInstance()).thenReturn(facesContext);
NavigationBean navigationBean = new NavigationBean();
navigationBean.setCheck(false);
// check the returned value of the toPage2() method
assertEquals("", navigationBean.toPage2());
// create an ArgumentCaptor for the FacesMessage that will be added to
// the FacesContext
ArgumentCaptor<FacesMessage> facesMessageCaptor = ArgumentCaptor
.forClass(FacesMessage.class);
// verify if the call to addMessage() was made and capture the
// FacesMessage that was passed
verify(facesContext).addMessage(Mockito.anyString(),
facesMessageCaptor.capture());
// get the captured FacesMessage and check the set values
FacesMessage message = facesMessageCaptor.getValue();
assertEquals(FacesMessage.SEVERITY_INFO, message.getSeverity());
assertEquals("Sæt i kryds checkboxen", message.getSummary());
}
上記のコード サンプルをより詳細に説明するブログ投稿を作成しました。