J'essaie d'ajouter des tests unitaires à certains codes de nos entreprises. Oui, je sais que cela devrait déjà être fait, mais tout le monde ne semble pas avoir la même vision des tests unitaires que moi.
Cependant, je me suis heurté à un obstacle qui me bloque un peu. Il est vrai que mes connaissances de Java, de Spring et des tests unitaires ne sont pas aussi bonnes qu'elles le devraient. Mais mon problème est le suivant :
J'ai ajouté un test unitaire à mon code, qui teste une classe. Cette classe inclut un bean qui a scope="request", et quand elle essaie d'instancier le bean, elle lève une exception :
java.lang.IllegalStateException: No Scope registered for scope 'request'
Je pense que c'est parce que je n'ai pas d'objet HttpServletRequest, mais je ne sais pas comment créer un objet fantaisie de ce type et je ne sais pas non plus comment, une fois créé, ajouter cet objet fantaisie au test unitaire pour qu'il résolve ce problème.
Vous trouverez ci-dessous une version réduite du code concerné, qui comprend, je pense, tous les détails qui font partie de ce problème.
Comment faire pour que ça marche ?
@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" />