javascript
java百里香_百里香Spring测试的意见
java百里香
我最近在基于Spring的Web應(yīng)用程序中轉(zhuǎn)換為thymeleaf以進(jìn)行視圖模板化,而不是jsp。 百里香葉文檔中關(guān)于為什么百里香葉在jsp上為什么能保持水分的所有爭(zhēng)論,我肯定被賣掉了。
除了能夠預(yù)覽模板之外,對(duì)我來(lái)說(shuō),主要原因之一是視圖在運(yùn)行時(shí)的呈現(xiàn)方式。 盡管應(yīng)用程序堆棧必須將jsp的呈現(xiàn)推遲到servlet容器,但它可以完全控制thymeleaf模板的呈現(xiàn)。 為了進(jìn)一步說(shuō)明這一點(diǎn),使用jsp作為視圖技術(shù),應(yīng)用程序僅返回jsp的位置,并且取決于servlet容器來(lái)呈現(xiàn)jsp。
那么,為什么這又是一個(gè)重要原因–因?yàn)樵趕pring-test模塊中使用了mvc測(cè)試支持 ,所以現(xiàn)在可以聲明實(shí)際呈現(xiàn)的內(nèi)容,而不僅僅是視圖的名稱。
考慮一個(gè)示例Spring MVC控制器:
@Controller @RequestMapping("/shop") public class ShopController {...@RequestMapping("/products")public String listProducts(Model model) {model.addAttribute("products", this.productRepository.findAll());return "products/list";} }如果該視圖基于jsp,我將進(jìn)行如下測(cè)試:
@RunWith(SpringJUnit4ClassRunner.class) @WebAppConfiguration @ContextConfiguration(classes = SampleWebApplication.class) public class ShopControllerWebTests {@Autowiredprivate WebApplicationContext wac;private MockMvc mockMvc;@Beforepublic void setup() {this.mockMvc = MockMvcBuilders.webAppContextSetup(this.wac).build();}@Testpublic void testListProducts() throws Exception {this.mockMvc.perform(get("/shop/products")).andExpect(status().isOk()).andExpect(view().name("products/list"));} }斷言僅在視圖名稱上。
現(xiàn)在,考慮使用百里香葉作為查看技術(shù)的測(cè)試:
@Test public void testListProducts() throws Exception {this.mockMvc.perform(get("/shop/products")).andExpect(status().isOk()).andExpect(content().string(containsString("Dummy Book1"))); }在這里,我斷言實(shí)際的渲染內(nèi)容。
這確實(shí)很好,但是使用jsp時(shí),我必須驗(yàn)證使用真實(shí)容器在運(yùn)行時(shí)正確渲染了jsp,而使用thymeleaf,我可以僅使用測(cè)試來(lái)驗(yàn)證渲染是否干凈。
翻譯自: https://www.javacodegeeks.com/2014/04/spring-test-with-thymeleaf-for-views.html
java百里香
總結(jié)
以上是生活随笔為你收集整理的java百里香_百里香Spring测试的意见的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 理想 L7 汽车推出车顶行李架,专车定制
- 下一篇: 微软通知 Exchange Online