Java 模拟类型转换对象
我在bean中有一个简单的方法来处理PrimeFacesDataTable中的单元格编辑事件。方法如下所示:Java 模拟类型转换对象,java,jsf,primefaces,mocking,mockito,Java,Jsf,Primefaces,Mocking,Mockito,我在bean中有一个简单的方法来处理PrimeFacesDataTable中的单元格编辑事件。方法如下所示: public void onCellEdit(CellEditEvent event) { Object oldValue = event.getOldValue(); Object newValue = event.getNewValue(); User user = (User) ((DataTable) event.getComponent()).getR
public void onCellEdit(CellEditEvent event) {
Object oldValue = event.getOldValue();
Object newValue = event.getNewValue();
User user = (User) ((DataTable) event.getComponent()).getRowData();
if (!newValue.equals(oldValue))
user.setUsername(oldValue.toString());
....
}
我如何嘲笑这一点:
User User=(User)((DataTable)event.getComponent()).getRowData()代码>您需要模拟和:
另请参见:
CellEditEvent mockEvent = Mockito.mock(CellEditEvent.class);
DataTable mockDataTable = Mockito.mock(DataTable.class);
Mockito.when(mockEvent.getComponent()).thenReturn(mockDataTable);
Mockito.when(mockDataTable.getRowData()).thenReturn(userObj);
public class EventTest {
//Let's supose that's the managed bean you want to test
public class Bean {
public void onCellEdit(CellEditEvent event) {
User user = (User) ((DataTable) event.getComponent()).getRowData();
System.out.println(user);
}
}
@Test
public void test() {
Bean bean = new Bean();
CellEditEvent evt = Mockito.mock(CellEditEvent.class);
DataTable table = Mockito.mock(DataTable.class);
User user = new User();
user.setName("Bob");
Mockito.when(table.getRowData()).thenReturn(new User("Username"));
Mockito.when(evt.getComponent()).thenReturn(table);
bean.onCellEdit(evt);
}
}