📄 sas 接口单元测试
内部资料,请刷新扫码登录
pigcloud
# 为什么需要单元测试
单元测试拥有保证代码质量、尽早发现软件 Bug、简化调试过程、促进变化并简化集成、使流程更灵活等优势。单元测试是针对代码单元的独立测试,核心是“独立”,优势来源也是这种独立性,而所面临的不足也正是因为其独立性:既然是“独立”,就难以测试与其他代码和依赖环境的相互关系。单元测试与系统测试是互补而非代替关系。单元测试的优势,正是系统测试的不足,单元测试的不足,又恰是系统测试的优势。不能将单元测试当做解决所有问题的万金油,而需理解其优势与不足,扬长避短,与系统测试相辅相成,实现测试的最大效益。
# 引入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-test</artifactId>
<scope>test</scope>
</dependency>
# 单元测试 Controller 接口
- 模拟测试 controller 接口 ,以 SysUserController info 接口为例
@SpringBootTest
public class SysUserControllerTest {
@Autowired
private WebApplicationContext context;
private MockMvc mvc;
@BeforeEach
public void setup() {
mvc = MockMvcBuilders.webAppContextSetup(context).apply(springSecurity()).build();
}
@Test
public void testGetCurrentUser() throws Exception {
mvc.perform(MockMvcRequestBuilders.get("/user/info").with(user(mockUser()))).andDo(print()).andExpect(status().isOk());
}
/**
* mockUser 对象
*
* @return UserDetails
*/
PigxUser mockUser() {
return new PigxUser(1L, "admin", 1L, "", "", ""//
, "", "", 1L, "", true, true//
, "0", true, true, AuthorityUtils.NO_AUTHORITIES);
}
}