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:
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";
 
	}
}
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
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"));
	}
l'application est bien accessible sur localhost:8080/monapplication/logout, et me redirige vers la view accueilLogin.

le fichier de configuration de spring security contient :
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>
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
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>
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
 
 
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 = []