2016-04-14 40 views
0

'da denetleyicileri sınama sırasında ne denetlemeli? Denetleyicileri, basit Sprinng uygulamasında MockMvc kullanarak test ediyorum. İlk defa test yapmaya çalışıyorum. Bulduğum kaynaklara dayanarak, testlerimi başarıyla yürütüyorum, ancak yanıtları kontrol etmem gerektiğinden emin değilim. Denetleyicilerim yalnızca görüntülenecek görünüm adlarını döndürür: dizin sayfası (menü çubuğu ve hoş geldiniz metni içerir), ürün sayfası (menü çubuğu ve boş ürün tablosu içerir) ve yaklaşık sayfa (yine menü çubuğu ve yazar hakkında bazı bilgiler). Testler şuna benzer:İlkbahar

mockMvc.perform(get("/myviews")) 
    .andExpect(status().isOk()) 
    .andExpect(view().name("myviewsnames")) 
    .andExpect(forwardedUrl("/WEB-INF/jsp/myviewsjsps.jsp")); 

Ama MockMvcResultMatchers belgelerinde https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/test/web/servlet/result/MockMvcResultMatchers.html dayalı Ben eşleştirme için diğer birçok seçenek görüyoruz. Başka ne ve neden testlerimi kontrol etmeliyim? Teşekkür ederim.

+0

Ayrıca özel durum işlemeyi de test etmek isteyebilirsiniz. Spring MVC denetleyicileri, hizmet katmanı tarafından atılan istisnaları HTTP Statüsüne (örneğin, kötü istek, yetkisiz, bulunamadı, vb.) Çevirebilir. Ancak bu, Rest Controllers için daha mantıklı olabilir. – user152468

cevap

0

Aslında MockMvc, RESTful web servislerini test etmenin harika bir yoludur, yanıtlarınızı başlıkları, durum kodu ve yanıt gövdesine göre test edebilirsiniz. Kullanım durumunuzda, görünüm adınızı varsa, bazı istek ölçütlerine göre test edebilirsiniz.

+0

Teşekkür ederim. REST denetleyicilerini ve testlerini de sonra uygularım. Ama demek istediğim, değiştirmediğimde bile, üstbilgileri test etmek, söylemek, mantıklı mıdır? Ya da uygun işleyicinin isteğimi işleyip işlemediğini kontrol etmeli miyim? REST denetleyicileri olan örneklerde, test sırasında başka hiçbir sahte nesne yönteminin çağrılmadığını her zaman kontrol ediyorum. Bunu neden test etmemiz gerekiyor? –

+0

Bir şey değil. Varlığınızı put yöntemiyle güncellediğinizi düşünün, böylece "Last-Modified" başlık değerinin değiştirilmesini beklersiniz, siz de bunu kendi durumunuzda test edersiniz. Bu mime türünü desteklemeniz durumunda, 'İçerik Türü' yanıtınızın değişeceğini umarsınız ve mime türünüzü desteklememeniz durumunda, '415 Desteklenmeyen Ortam Türü' durum kodu dışında Aslında kodunuzu kullanım durumlarınıza ve beklentilerinize göre kodunuzda test edebilirsiniz. –

+0

Çok teşekkür ederim. Bana çok yardımcı oldun! –