百里香Spring测试的意见
我最近将其转换为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测试的意见相关推荐
- java百里香_百里香Spring测试的意见
java百里香 我最近在基于Spring的Web应用程序中转换为thymeleaf以进行视图模板化,而不是jsp. 百里香叶文档中关于为什么百里香叶在jsp上为什么能保持水分的所有争论,我肯定被卖掉了 ...
- spring 测试 事务_Spring陷阱:事务测试被认为是有害的
spring 测试 事务 Spring杀手级功能之一是容器内集成测试 . 尽管EJB多年来一直缺乏此功能(Java EE 6终于解决了这个问题,但是我尚未进行测试),但是Spring从一开始就允许您从 ...
- Spring测试支持和上下文缓存
Spring为单元测试和集成测试提供了全面的支持-通过注释来加载Spring应用程序上下文,并与JUnit和TestNG等单元测试框架集成. 由于为每个测试加载大型应用程序上下文需要时间,因此Spri ...
- 解决Spring测试出现@EnableAsync annotation metadata was not injected
Spring测试的时候,出现如下报错,非常奇怪 Caused by: org.springframework.beans.factory.BeanCreationException: Error c ...
- Spring依赖注入IOC(给字段赋值)和Spring测试
含义: IOC是一种思想,它的一个重点是在系统运行中,动态的向某个对象提供它所需要的其他对象.这一点是通过DI(Dependency Injection,依赖注入)来实现的:Spring中对象的属性字 ...
- Spring 测试(第一部分)
1.Spring Testing介绍 测试是企业软件开发的一个组成部分.本章重点讨论IoC原则为单元测试 unit testing增加的价值,以及Spring框架对集成测试 integration t ...
- spring 测试类test测试方法
实例掩码地址为:孔浩组织结构设计 web.xml配置文件: 1 <!-- Spring 的监听器可以通过这个上下文参数来获取beans.xml的位置 --> 2 <context-p ...
- spring 测试demo乱码_spring框架的入门学习:AOP和面向切面的事务
使用注解配置spring,需要以下几个步骤: 需要导入一个包: 步骤1:需要为主配置文件引入新的命名空间(约束),和之前介绍的一样,导入新的约束: 然后在application.xml的Design中 ...
- Spring测试框架springContextTest
2019独角兽企业重金招聘Python工程师标准>>> ssh版本:spring4.2/struts2.3/hibernate4:除了一些必要的jar包外,使用spring自带的测试 ...
最新文章
- hdu1166 敌兵布阵
- linux下文件系统的启动过程
- ”易书网“开发总结——管理篇
- layer弹出层闪退_jQuery使用Layer弹出层插件闪退问题
- 5 获取Form表单取值
- Spring的p标签
- ORACLE 包内的存储过程的动态sql
- 《软件质量保证与测试》学习笔记【第一章 软件测试基本概念】
- 无法启动游戏 因为计算机,win7电脑无法启动游戏怎么办?
- Acrel-6000/B电气火灾监控系统在千山大厦的应用
- 快速安装vs2015社区版
- t-SNE数据降维可视化
- 机械式计算机自制,自制计算机(1):机械计算机原理
- chap4Web服务器-入门学习笔记
- 用 Python 20秒画完小猪佩奇“社会人”
- suds对接web service
- 【Linux从青铜到王者】第二十篇:Linux网络基础第三篇之IP协议
- QPBOC规范——GPO流程
- GWO-BiLSTM 双向长短期记忆网络 基于灰狼优化双向长短期记忆网络(GWO-BiLSTM)的回归预测或时序预测
- 3DMAX 10 角色动作
热门文章
- 简单解决“无法打开内核设备:\\Global\\vmx86”错误
- java弹弹球实验报告_Java弹球游戏实验报告—chen
- dmn是大脑中哪个区域_DMN中的函数式编程:感觉就像再次重读我的大学课程一样...
- system.gc 性能_使用这些先进的GC技术提高应用程序性能
- 英文连词_连词我们…讨厌
- java与java ee_Java EE 8 MVC:全局异常处理
- javafx ui_调用以验证JavaFX UI的响应能力
- hazelcast入门教程_Hazelcast入门指南第4部分
- ArrayList clone()– ArrayList深拷贝和浅拷贝
- 只能在测试中注射吗?