IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Spring Java Discussion :

Test unitaire d'un Controller Spring


Sujet :

Spring Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 38
    Points : 41
    Points
    41
    Par défaut Test unitaire d'un Controller Spring
    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 = []

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 38
    Points : 41
    Points
    41
    Par défaut
    solution :
    ajout de <context:component-scan> sur le package des controller

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Spring.net et test unitaire via VS2010
    Par GreenPhoenix dans le forum Framework .NET
    Réponses: 2
    Dernier message: 07/12/2011, 22h59
  2. Test unitaire d'un control asp.net
    Par Arthis dans le forum ASP.NET
    Réponses: 0
    Dernier message: 25/03/2011, 13h00
  3. [Integration] Tests unitaires bouchonnés avec Spring
    Par Invité dans le forum Spring
    Réponses: 1
    Dernier message: 17/02/2011, 18h16
  4. [Integration] Spring Contexte BD Tests Unitaires
    Par yyusy dans le forum Spring
    Réponses: 3
    Dernier message: 26/07/2010, 16h15
  5. [Batch] Spring / Tests unitaires
    Par kilicool dans le forum Spring
    Réponses: 1
    Dernier message: 02/06/2010, 20h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo