Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 模拟类型转换对象_Java_Jsf_Primefaces_Mocking_Mockito - Fatal编程技术网

Java 模拟类型转换对象

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

我在bean中有一个简单的方法来处理PrimeFacesDataTable中的单元格编辑事件。方法如下所示:

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