您现在的位置是:主页 > news > 大同建设工程信息网/百度seo优化排名客服电话
大同建设工程信息网/百度seo优化排名客服电话
admin2025/4/29 18:32:35【news】
简介大同建设工程信息网,百度seo优化排名客服电话,翼讯自助网站,近期军事新闻热点事件编译器IDEA 一、注解详解 在测试类上添加 RunnerWith(SpringRunner.class) SpringBootTest WebAppConfiguration 这三个注解。 在方法上需要添加的注解及相关功能: BeforeClass:针对所有测试,只执行一次,且必须为static v…
编译器IDEA
一、注解详解
在测试类上添加
@RunnerWith(SpringRunner.class)
@SpringBootTest
@WebAppConfiguration
这三个注解。
在方法上需要添加的注解及相关功能:
@BeforeClass:针对所有测试,只执行一次,且必须为static void
@Before:在@Test测试方法执行完之前执行该注解指定方法
@Test:测试方法,在这里可以测试期望异常和超时时间
@After:在@Test测试方法执行完之后执行该注解指定方法
@AfterClass:针对所有测试,只执行一次,且必须为static void
@Ignore:执行全部测试方法时,忽略该测试方法(只在测试类的时候生效,单独执行该测试方法无效)
代码如下:
@RunWith(SpringRunner.class) @SpringBootTest @WebAppConfiguration public class BaseTest {@Beforepublic void before(){System.out.println("测试开始");}@Afterpublic void after(){System.out.println("测试结束");} }
为了避免每个测试类都重复添加注解,所以以上面的那个为基类,其他测试类继承它就行了。
二、打包测试,也就是单独写一个测试类,然后在该测试类上指定要运行的其他所有测试类。
使用方式:
在这个单独的测试类上使用以下注解:
@RunnerWith(Suite.class)
@SuiteClasses({yourClass.class,MyClass.class})
该测试类中不用添加任何方法,直接执行这个测试类,此时会执行SuiteClasses注解所指定的所有测试类(在这里就是yourClass.class,MyClass.class这两个测试类)。
三、测试Controller,模拟浏览器发送请求
使用MockMvc类,这个是spring-boot-test-starter里面的
1,注入WebApplicationContext,代码如下:
@Autowired protected WebApplicationContext wac;
2,在该测试类中加一个MockMvc的字段,代码如下:
protected MockMvc mockMvc;
3,在测试类中的@Before方法内初始化mockMvc,代码如下:
@Before public void before(){System.out.println("测试开始");mockMvc= MockMvcBuilders.webAppContextSetup(wac).build(); }
4、接下来就可以在@Test测试方法中使用mockMvc模拟发送请求了。
(1)有如下DTO与controller
@Data @AllArgsConstructor(staticName = "of") @NoArgsConstructor public class FirstDTO {private String name;private String desc;private Integer age; }
@GetMapping("/first") public FirstDTO getDTO(FirstDTO firstDTO){return firstDTO; }
(2)mockMvc模拟发送请求
@Test public void contextLoads() throws Exception{MvcResult mvcResult = mockMvc.perform(MockMvcRequestBuilders.get("/first").param("name", "周利东").param("desc", "描述杀").param("age", "18")).andReturn();String response = mvcResult.getResponse().getContentAsString();System.out.println(response); }
上面得到的返回值和postman的请求是一样的,反正吧mockMvc当成一个HttpClient所发送的请求就行了。
三、测试时数据库事物,即测试数据库不添加进入数据库,测试完毕默认回滚数据
在测试类上添加
@Transactional
在想要自动回滚的方法上添加
@Rollback