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")

 

posted @ 2019-11-12 10:46  君子之行  阅读(15)  评论(0)    收藏  举报