Сценарий:
Например, мой PaymentProcessingService зависит от валидатора, платежного шлюза, репозитория базы данных и службы электронной почты. Мои тесты требуют имитации всех четырех зависимостей, что делает настройку многословной и сложной в обслуживании.
Код: Выделить всё
@Test
public void shouldProcessValidPayment() {
// Mocking 4 dependencies makes this setup very long
when(validator.validate(any())).thenReturn(true);
when(gateway.charge(any())).thenReturn(new GatewayResponse("success"));
when(repository.save(any())).thenReturn(transaction);
// ... bla bla bla
PaymentResult result = service.processPayment(request);
assertEquals(PaymentStatus.SUCCESS, result.getStatus());
}
В TDD мне следует разбить это на более мелкие классы с меньшим количеством зависимостей или есть лучший способ структурировать тесты, когда у службы много соавторов?
Подробнее здесь: https://stackoverflow.com/questions/798 ... -with-java
Мобильная версия