Я хочу провести модульное тестирование следующим методом
public void addRecord(Record record)
{
Myclass newObj = new Mycalss();
// It creates newObj object, set some values using record object.
// and it adds the newObj in daatbase.
dataReqDao.persist(newObj);
}
Я издевался над методом dataReqDao.persist
, но как я могу проверить, скопированы ли правильные значения в объект newObj? Я хочу получить объект newObj.
Я думаю, что thenAnswer
будет подходящим методом для получения аргументов метода newObj ie, но не знаю, как использовать этот метод, который возвращает void.
Обновление:
я пытался
doAnswer(new Answer<Myclass>() {
public Myclass answer(InvocationOnMock invocation) {
Object[] args = invocation.getArguments();
return (Myclass)args[0];
}
}).when(dataReqDao.persist(any(Myclass.class)));
EDIT:
Так и должно быть (спасибо, Дэвид)
doAnswer(new Answer<Myclass>() {
public Myclass answer(InvocationOnMock invocation) {
Object[] args = invocation.getArguments();
return (Myclass)args[0];
}
}).when(dataReqDao).persist(any(Myclass.class));
doAnswer( ... ).when( dataReqDao ).persist( ... );
Это помогает? - person Dawood ibn Kareem   schedule 11.01.2012