Software_programming_Java_Test
2019-11-12
批量运行 Test Suit 两种办法
1. 选中Test 集合所在 Package ,点击运行在该package 下的所有 test


2. 新建一个 test, 使用 testSuit 和 runwith
新建一个空类, 引入 org.junit.runner.RunWith 和 org.junit.runners.Suit
将选定的 Test 组合在一起即可。

AssertJ document
http://joel-costigliola.github.io/assertj/assertj-core-quick-start.html

2019-11-27
ref : 《Spring in action》 p51

Spring MVC test
ModelAndViewAssert 主要方法
assertViewName 视图名称是否与预期名称匹配 ex: assertViewName(mav_ins, "viewNameStr")
assertModelAttributeAvailable 模型是否包含具有预期模型名称的属性
assertModelAttributeValue 模型是否包含具有指定名称和值的属性
assertSortAndCompareList-ModelAttribute 对 ModelAndView 的列表排序,然后将其与预期列表进行比较。



2019-11-27 20:11:39
Spring Test 用于集成测试的模块。
Spring 的 MockHttpServletRequest, MockHttpServletResponse 和 MoelAndViewAssert 类适用于
对 Spring MVC 控制器进行单元测试,但它们缺少与集成测试相关的功能。
例如,它们直接调用请求处理方法,无法测试请求映射和数据绑定,也不测试bean依赖注入,因为
SUT 类使用 new 运算符实例化。
bean 是使用 Sprign 依赖注入器创建的,并从 ApplicationContext 中获取,就像在一个真正的Spring应用程序中一样。
Spring MVC Test 主类,用于帮助集成测试,允许使用预定义的请求映射来调用请求处理方法。
创建 MockMvc实例的方法:
MockMvc mockMvc = MockMvcBuilders.webAppContextSetup( webAppContext).build();
webAppContext 是 WebApplicationContext 实例的一个引用, WebApplicationContext 是 ApplicationContext的子类
要获取,必须在测试类中声明:
@Autowired
private WebApplicationContext webAppContext;
MockMvcBuilder 读取一个 Spring 配置文件或为测试类定义的文件。
MockMvc 唯一的方法: perform, 用于通过 URI 间接调用 Spring MVC 控制器。
ResultActions perform ( RequestBuilder requestBuilder)
MockMvcRequestBuilders 类提供了与 HTTP方法具有相同名称的静态方法:
get, post, head, put, patch, delete 等
要使用 HTTP GET 方法测试控制器,可以调用 get 方法。
静态方法也很容易使用, 只需要传递一个字符串--控制器的请求处理方法的 URI.
ex: 要调用名为 getEmployee 的请求处理方法
ResultActions resultActions = mockMvc.perform( get ("/getEmployee"));
验证测试是否成功, 需要调用 ResultActions 的 andExpect 方法
ResultAction andExpect (ResultMatcher matcher)
可以链式调用多个 AndExpect,

例如: 要确保控制器方法的请求映射正确,可以使用状态方法:
mockMvc.perform ( get ("/getBook")).andExpect(status().isOk());
===============================================================================

runner 允许你使用 spring
webAppConfiguration 注解类型用于声明测试加载的 ApplicationContext 应该是 WebApplicationContext类型
默认情况 @WebAppConfiguration 注解的Spring集成测试类将使用相对于项目目录的/src/main/webapp目录作为
根目录。Maven 标准布局。
如果需要使用 ServletContext.getRealPath()的值,将获得相对于 /src/main/webapp的值,而不是相对于你的
Web应用程序目录的值。
将实际应用程序目录传递到 @WebAppConfiguration 来修复此问题。
以下将让任何 WebApplicationContext使用 /approotdir 作为应用程序目录
@WebAppConfiguration("/approotdir")

浙公网安备 33010602011771号