Тестируемый метод
public boolean delete(Long id) {
Message message = messageRepository.findOne(id);
if (message == null) {
throw new DataNotFoundException("Data with id=" + id + " not found.");
}
messageRepository.delete(id);
return true;
}
Тест:
@Test
public void delete() throws Exception {
//prepare
MessageServiceImp spy = spy(new MessageServiceImp(messageRepository));
messageServiceImp.save(MESSAGE); //создаю объект, пробовал и не создавать результат одинаков
doReturn(true).when(spy).delete(ID);
//testing
boolean testMessage = messageServiceImp.delete(ID);
//validate
verify(messageRepository).delete(ID);
}
Тест не проходит получаю:
.exception.DataNotFoundException: Data with id=1 not found.
Что делаю не так?
Вот мой вариант.
Тестируемый метод
public boolean delete(Long id) {
// проверку на существование и пр. должен делать MessageRepository
return messageRepository.delete(id);
}
Тест
private static final Long ID = 123;
// интерфейс, а не реализация
private MessageRepository messageRepository;
@Test
public void detele_delegateToRepository() throws Exception {
// подготовка
messageRepository = mock(MessageRepository.class);
// не знаю как у вас класс называется - будем считать Subject
Subject subject = new Subject(messageRepository);
// действие
subject.delete(ID);
// проверка
verify(messageRepository).delete(ID);
}
Это все что вам надо тестировать. Остальные тесты должны быть у класса который реализует MessageRepository.
При передаче объекта в качестве параметра методу ссылка должна копироватьсяТогда почему вывод 0 9 9, а не 9 9 9? Получается, s1 и s2 ссылаются на разные...
Добрый деньЕсть контроллер в котором есть метод поиска
Не могу найти ни один пример запроса Twitter Api androidЕсли кто может - предоставьте пример выполнения такого запроса в android
Как отловить события mousePressed и mouseReleased где в этот момент находится курсор, а потом получить объект над которым это событие происходит? Можно...