Я изучаю Kafka с Spring Boot и создал простой проект, который имитирует услугу заказа электронной коммерции. Проект включает в себя контроллер, который получает полезную нагрузку JSON и передает его уровню сервиса, который действует как продюсер Kafka.
Ответственность продюсера проста: он требует объекта JSON, сериализует его на строку и отправляет его в тему Kafka, используя kafkatemplate . /> Поскольку класс производителей просто сериализует объект и отправляет его брокеру Kafka, я должен писать модульные тесты для этого класса?@Slf4j
@Service
@RequiredArgsConstructor
public class OrderProducer {
private final KafkaTemplate kafkaTemplate;
private final KafkaProperties kafkaProperties;
private final ObjectMapper objectMapper;
public void sendOrder(Order order) {
try {
var jsonOrder = objectMapper.writeValueAsString(order);
var future = kafkaTemplate.send(kafkaProperties.topic(), jsonOrder);
future.whenComplete((status, e) -> {
if (e != null) {
log.error("Error sending message: {}", e.getMessage());
}
});
} catch (JsonProcessingException e) {
log.error("Error serializing order: {}", e.getMessage());
}
}
}
< /code>
Я лично считаю, что написание модульного теста для этого класса может быть излишним, так как нет реальной бизнес -логики. Тем не менее, я вижу ценность в тестировании этого класса, если бы я добавил такие функции, как обработка ошибок, повторения или поддержку темы мертвой буквы - поэтому я мог бы проверить как счастливый путь, так и сценарии сбоев. Покрытие низкое? Другими словами, должен ли я имитировать HTTP -запрос и использовать что -то вроде TestContainers или встроенной кафки, чтобы убедиться, что сообщение было фактически опубликовано для брокера Kafka?
Подробнее здесь: https://stackoverflow.com/questions/796 ... tion-tests
Должен ли у простой пружинной производителя Kafka есть модульные тесты или только интеграционные тесты? ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение