Test-Driven Development-это способ развить свой код, где тест будет создан до изменения/создания кода. Это делается для того, что развитие имеет гарантию его функциональности.
Испытание должно быть первое, что нужно сделать, чтобы код был разработан вокруг этого теста, что в конце развития, даже работает, доказывая, что код работает.
Хороший способ выполнить эти тесты с помощью Mockito.
Mockito-это платформа mocking, который часто используется в модульном тестировании. Mockar объект имитировать его поведение. При создании этой модели, находится можно провести тест без вызова сложный объект, мы называем только мок.
Пример
Необходимо запустить мокс до тестирования.
@Before
public void setup(){
service = new RentService();
RentDAO dao = Mockito.mock(RentDAO.class);
service.setRentDao(dao);
spcService = Mockito.mock(SPCService.class);
service.setSpcService(spcService);
}
Estou simulando в качестве интерфейсов rentdao e SPCService com o Mockito.
Rentdao: public void save(Аренда аренды); spCservice: public boolean isNegative(Пользователь user);
С этим мы можем выполнить тест, призвав мок.
@Test
public void rentTest() throws Exception {
//given
User user = UserBuilder.aUser().now();
List movies = Arrays.asList(MovieBuilder.aMovie().withValue(5.0).now());
//when
Rent rent = service.rentMovie(user, movies);
//then
error.checkThat(rent.getValue(), is(equalTo(5.0)));
error.checkThat(DataUtils.isSameDate(rent.getRentDate(), new Date()), is(true));
error.checkThat(DataUtils.isSameDate(rent.getReturnDate(), DataUtils.obtainDataInDifferenceInDays(1)), is(true));
}
В этом тесте, пользователь и фильма были начаты и услуги аренды был mockado.
Завершение
Таким образом, можно проверить, если служба проката работает без этого, по сути, аренда. Это полезно, чтобы избежать, например, ненужных поездок в базу данных, просто mockar объект, который делает вызов.
Если вы заинтересованы, вот репозиторий на GitHub с более тестирования mockados: Если вы заинтересованы, вот репозиторий на GitHub с более тестирования mockados:
Оригинал: “https://dev.to/pedro_arruzzo/tdd-e-testes-com-mocks-3l4e”