Я пытаюсь добавить модульное тестирование в код некоторых наших компаний. Да, я знаю, что он уже должен быть там, но не у всех, похоже, такое же представление о модульном тестировании, как у меня.
Однако я выступил против некоторой пробки для меня. По общему признанию, мои знания Java, Spring и Unit Testing - это не все, чем они должны быть. Моя проблема заключается в следующем:
Я добавил модульный тест в мой код, который проверяет класс. Этот класс включает в себя bean-компонент, который имеет scope = "request", и когда он пытается создать экземпляр bean-компонента, он генерирует исключение:
java.lang.IllegalStateException: No Scope registered for scope 'request'
Я полагаю, что это потому, что у меня нет объекта HttpServletRequest, но я не знаю, как создать имитацию одного из них, а также я не знаю, как после создания добавить этот фиктивный объект в модульный тест, чтобы решить эту проблему.
Ниже приведена сокращенная версия кода, который, как мне кажется, включает в себя все детали, которые являются частью этой проблемы.
Как мне заставить это работать?
@Test
public void handleRequest() {
try {
Message<?> outMessage = (Message<?>) response.handleRequest(map);
} catch (Exception e) {
assertNotNull(e);
}
outMessage.getPayload().toString());
}
public class upddResponse extends AbstractResponseTransform {
@SuppressWarnings("unchecked")
public Message<?> handleRequest(Map<String, Message<?>> messages) throws Exception {
super.addEnvironmentDetails(serviceResponseDocument.getServiceResponse());
}
public abstract class AbstractResponseTransform implements ResponseTransform,
ApplicationContextAware {
private ApplicationContext applicationContext;
private MCSResponseAggregator mcsResponseAggregator;
public ServiceResponseType addEnvironmentDetails(ServiceResponseType serviceResponse) throws Exception {
try {
mcsResponseAggregator = (MCSResponseAggregator) applicationContext
.getBean("mcsResponseAggregator");
}
catch (Exception ex) {
}
}
}
public interface ResponseTransform extends Transform {
public Message<?> handleRequest(Map<String, Message<?>> messages)
throws Exception;
}
<bean id="mcsResponseAggregator" class="com.company.aggregator.MCSResponseAggregator" scope="request" />