java百里香

我最近在基于Spring的Web应用程序中转换为thymeleaf以进行视图模板化,而不是jsp。 百里香叶文档中关于为什么百里香叶在jsp上为什么能保持水分的所有争论,我肯定被卖掉了。

除了能够预览模板之外,对我来说,主要原因之一是视图在运行时的呈现方式。 尽管应用程序堆栈必须将jsp的呈现推迟到servlet容器,但它可以完全控制thymeleaf模板的呈现。 为了进一步说明这一点,使用jsp作为视图技术,应用程序仅返回jsp的位置,并且取决于servlet容器来呈现jsp。

那么,为什么这又是一个重要原因–因为在spring-test模块中使用了mvc测试支持 ,所以现在可以声明实际呈现的内容,而不仅仅是视图的名称。

考虑一个示例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,我将进行如下测试:

@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"));}
}

断言仅在视图名称上。

现在,考虑使用百里香叶作为查看技术的测试:

@Test
public void testListProducts() throws Exception {this.mockMvc.perform(get("/shop/products")).andExpect(status().isOk()).andExpect(content().string(containsString("Dummy Book1")));
}

在这里,我断言实际的渲染内容。

这确实很好,但是使用jsp时,我必须验证使用真实容器在运行时正确渲染了jsp,而使用thymeleaf,我可以仅使用测试来验证渲染是否干净。

翻译自: https://www.javacodegeeks.com/2014/04/spring-test-with-thymeleaf-for-views.html

java百里香

java百里香_百里香Spring测试的意见相关推荐

  1. spring 加载java类_在Spring中基于Java类进行配置的完整步骤

    在Spring中基于Java类进行配置的完整步骤 发布于 2020-7-7| 复制链接 基于Java配置选项,可以编写大多数的Spring不用配置XML,下面 前言JavaConfig 原来是 Spr ...

  2. 百里香Spring测试的意见

    我最近将其转换为thymeleaf ,以便在基于Spring的Web应用程序中进行视图模板化,而不是jsp. 百里香叶文档中所有关于为什么百叶香叶在jsp上为何能保持水分的争论都被我肯定了. 除了能够 ...

  3. 事件驱动java实现_基于spring实现事件驱动

    通过阅读该篇博客,你可以了解了解java的反射机制.可以了解如何基于spring生命周期使用自定义注解解决日常研发问题.具体源码可以点击 链接 . 问题描述 在日常研发中,经常会遇见业务A的某个act ...

  4. java重新定义_重新定义Spring Cloud实战 PDF 下载

    资料目录: 前言 第1章 微服务与SpringCloud1 1.1 微服务架构概述1 1.1.1 应用架构的发展1 1.1.2 微服务架构3 1.1.3 微服务解决方案4 1.2 Spring Clo ...

  5. eclipse java敏捷_基于Spring+Hibernate+Eclipse进行敏捷Java开发(2)

    敏捷绘图 在继续下面的讨论前,请允许我简短地介绍一种新颖而相当简单的技术-敏捷绘图:我正是借助于它绘制了上面的图3-7.这一技术成为略显"笨重"的统一建模语言(UML)的一种替代, ...

  6. Java毕业设计_基于spring的一汽大众4s店汽车销售系统的设计与实现

    基于spring的一汽大众4s店汽车销售系统的设计与实现 基于spring的一汽大众4s店汽车销售系统的设计与实现mysql数据库创建语句 基于spring的一汽大众4s店汽车销售系统的设计与实现or ...

  7. Spring简化Java开发_第1章—Spring之旅—简化Spring的java开发

    简化Spring的java开发 1.1简介 区别于EJB的特性 简化javaBean,为了降低java开发的复杂性,Spring采取了以下4种关键策略: 基于POJO的轻量级和最小入侵性编程 通过依赖 ...

  8. java小马哥百度网盘_思否编程(小马哥):Java 微服务实践 - Spring Boot / Spring Cloud全套,完整版下载 - VIPC6资源网...

    小马哥 Java 微服务实践 – Spring Boot 系列 pptx segmentfault-lessons-master 03Java 微服务实践 – Spring Boot 系列(三)Web ...

  9. java小马哥百度网盘_小马哥spring boot和spring cloud系列

    资源内容: 小马哥spring boot和spring cloud系列|____小马哥 Java 微服务实践 - Spring Boot 系列          |____pptx           ...

最新文章

  1. 一文读懂机器学习“数据中毒”
  2. mysql去除字符串首的非字母_如何从SQLServer中的字符串中删除所有非字母字符?...
  3. Javascript中字符串转数字
  4. html 商品展示框
  5. linux系列之: 你知道查看文件空间的两种方法吗?
  6. C#宿舍管理系统数据表文档分析含释义
  7. rcp rapido_Rapido使用数据改善乘车调度
  8. 众成翻译2.0上线,翻译即有机会获赠图书
  9. 特斯拉上海超级工厂汽车年产量已达到45万辆
  10. 一些用于拥挤场景的异常检测的视频数据集
  11. leetcode专题训练笔记
  12. 类似新浪微博和google图片的HTML5实现图片拖拽上传功能
  13. DNS 正向查找与反向查找
  14. Python如何使用生成器得到斐波那契数列
  15. spark 两个rdd求交集,差集,并集
  16. 【TSP】基于matlab遗传和模拟退火算法求解中国省会城市旅行商问题【含Matlab源码 1254期】
  17. discuz 论坛DIY增加{lastposter}最后回复者以及{forumicon}版块图标调用解读
  18. iphone模拟器上模拟内存警告
  19. 愿天下有情人都是失散多年的兄妹(25 分)
  20. 台前与幕后的5G战争

热门文章

  1. 《信号与系统》期中总结
  2. NOIP2018-普及参赛总结
  3. [XSY3112] 接水果(树上包含路径,整体二分,扫描线)
  4. 汇编语言(二十)之分类统计字符个数
  5. artTemplate的空白输出坑
  6. 深入浅出 Java 中的包装类
  7. vue-router 如何在当前路由下重新点击当前路由的router-link实现刷新
  8. CDN如何实现,关键技术是什么?
  9. 【学校作业】学生数据打印
  10. 一步一步详解高斯日记