我最近将其转换为thymeleaf ,以便在基于Spring的Web应用程序中进行视图模板化,而不是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

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

  1. java百里香_百里香Spring测试的意见

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

  2. spring 测试 事务_Spring陷阱:事务测试被认为是有害的

    spring 测试 事务 Spring杀手级功能之一是容器内集成测试 . 尽管EJB多年来一直缺乏此功能(Java EE 6终于解决了这个问题,但是我尚未进行测试),但是Spring从一开始就允许您从 ...

  3. Spring测试支持和上下文缓存

    Spring为单元测试和集成测试提供了全面的支持-通过注释来加载Spring应用程序上下文,并与JUnit和TestNG等单元测试框架集成. 由于为每个测试加载大型应用程序上下文需要时间,因此Spri ...

  4. 解决Spring测试出现@EnableAsync annotation metadata was not injected

     Spring测试的时候,出现如下报错,非常奇怪 Caused by: org.springframework.beans.factory.BeanCreationException: Error c ...

  5. Spring依赖注入IOC(给字段赋值)和Spring测试

    含义: IOC是一种思想,它的一个重点是在系统运行中,动态的向某个对象提供它所需要的其他对象.这一点是通过DI(Dependency Injection,依赖注入)来实现的:Spring中对象的属性字 ...

  6. Spring 测试(第一部分)

    1.Spring Testing介绍 测试是企业软件开发的一个组成部分.本章重点讨论IoC原则为单元测试 unit testing增加的价值,以及Spring框架对集成测试 integration t ...

  7. spring 测试类test测试方法

    实例掩码地址为:孔浩组织结构设计 web.xml配置文件: 1 <!-- Spring 的监听器可以通过这个上下文参数来获取beans.xml的位置 --> 2 <context-p ...

  8. spring 测试demo乱码_spring框架的入门学习:AOP和面向切面的事务

    使用注解配置spring,需要以下几个步骤: 需要导入一个包: 步骤1:需要为主配置文件引入新的命名空间(约束),和之前介绍的一样,导入新的约束: 然后在application.xml的Design中 ...

  9. Spring测试框架springContextTest

    2019独角兽企业重金招聘Python工程师标准>>> ssh版本:spring4.2/struts2.3/hibernate4:除了一些必要的jar包外,使用spring自带的测试 ...

最新文章

  1. hdu1166 敌兵布阵
  2. linux下文件系统的启动过程
  3. ”易书网“开发总结——管理篇
  4. layer弹出层闪退_jQuery使用Layer弹出层插件闪退问题
  5. 5 获取Form表单取值
  6. Spring的p标签
  7. ORACLE 包内的存储过程的动态sql
  8. 《软件质量保证与测试》学习笔记【第一章 软件测试基本概念】
  9. 无法启动游戏 因为计算机,win7电脑无法启动游戏怎么办?
  10. Acrel-6000/B电气火灾监控系统在千山大厦的应用
  11. 快速安装vs2015社区版
  12. t-SNE数据降维可视化
  13. 机械式计算机自制,自制计算机(1):机械计算机原理
  14. chap4Web服务器-入门学习笔记
  15. 用 Python 20秒画完小猪佩奇“社会人”
  16. suds对接web service
  17. 【Linux从青铜到王者】第二十篇:Linux网络基础第三篇之IP协议
  18. QPBOC规范——GPO流程
  19. GWO-BiLSTM 双向长短期记忆网络 基于灰狼优化双向长短期记忆网络(GWO-BiLSTM)的回归预测或时序预测
  20. 3DMAX 10 角色动作

热门文章

  1. 简单解决“无法打开内核设备:\\Global\\vmx86”错误
  2. java弹弹球实验报告_Java弹球游戏实验报告—chen
  3. dmn是大脑中哪个区域_DMN中的函数式编程:感觉就像再次重读我的大学课程一样...
  4. system.gc 性能_使用这些先进的GC技术提高应用程序性能
  5. 英文连词_连词我们…讨厌
  6. java与java ee_Java EE 8 MVC:全局异常处理
  7. javafx ui_调用以验证JavaFX UI的响应能力
  8. hazelcast入门教程_Hazelcast入门指南第4部分
  9. ArrayList clone()– ArrayList深拷贝和浅拷贝
  10. 只能在测试中注射吗?