Bonsoir,
j'ai un problème sur l’exécution des tests unitaires des Controllers. je n'arrive pas à avoir le résultat attendu, à chaque execution, j'ai l'erreur : java.lang.AssertionError: No ModelAndView found.
Ci-joint les différents fichiers utilisés,
pour information, je n'ai aucun problème au chargement du contexte dans les TU de la partie persistance et service. pour le moment, je n'ai arrivé à exécuter aucun test sur la partie Controller
Merci par avance,
le code source du controller:
le teste unitaire du controller :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 @Controller public class LoginController { @RequestMapping(value="/loginfailed", method = RequestMethod.GET) public String loginerror(ModelMap model) { model.addAttribute("error", "true"); return "accueilLogin"; } }
l'application est bien accessible sur localhost:8080/monapplication/logout, et me redirige vers la view accueilLogin.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 @ContextConfiguration(locations = { "classpath:/META-INF/applicationContext-test.xml" }) @WebAppConfiguration public class LoginControllerTest extends AbstractJUnit4SpringContextTests { @Autowired private WebApplicationContext wac ; private MockMvc mockMvc; @Before public void setup() { this.mockMvc = webAppContextSetup(this.wac).build(); System.out.println(wac.getBeanDefinitionNames()); } @Test public void testLoginFailed() throws Exception { this.mockMvc.perform(get("/loginfailed")).andDo(print()) .andExpect(view().name("accueilLogin")); }
le fichier de configuration de spring security contient :
et enfin, le fichier web.xml :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <http > <intercept-url pattern="/accueilLogin*" access="ROLE_ANONYMOUS, ROLE_USER" /> <intercept-url pattern="/register*" access="ROLE_ANONYMOUS, ROLE_USER" /> <intercept-url pattern="/welcome*" access="ROLE_USER" /> <!-- <intercept-url pattern="/logout*" access="ROLE_USER" /> --> <form-login login-page="/accueilLogin" default-target-url="/welcome" authentication-failure-url="/loginfailed" /> <logout logout-success-url="/logout" /> </http>
les logs de la request :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 <servlet> <servlet-name>mvc-dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>mvc-dispatcher</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <context-param> <param-name>contextConfigLocation</param-name> <param-value> /WEB-INF/mvc-dispatcher-servlet.xml, classpath:/META-INF/applicationContext.xml </param-value> </context-param> <!-- Spring Security --> <filter> <filter-name>springSecurityFilterChain</filter-name> <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> </filter> <filter-mapping> <filter-name>springSecurityFilterChain</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 MockHttpServletRequest: HTTP Method = GET Request URI = /loginfailed Parameters = {} Headers = {} Handler: Type = null Resolved Exception: Type = null ModelAndView: View name = null View = null Model = null FlashMap: MockHttpServletResponse: Status = 404 Error message = null Headers = {} Content type = null Body = Forwarded URL = null Redirected URL = null Cookies = []
Partager