注解
通用
@RunWith(SpringJUnit4ClassRunner.class) @SpringApplicationConfiguration(classes ={DataSourceConfig.class,WebApiConfig.class}) @WebAppConfiguration
数据库回滚
- 在单元测试的时候为了避免产生脏数据,需要对执行的结果进行回滚
- 需要加入@TransactionConfiguration将defaultRollback设置为true(默认)
- 继承AbstractTransactionalJUnit4SpringContextTests
@TransactionConfiguration(transactionManager="balanceTransactionManager",defaultRollback=true)
使用mock测试Controller
maven配置
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.jayway.jsonpath</groupId>
<artifactId>json-path</artifactId>
<version>2.0.0</version>
<scope>test</scope>
</dependency>
Demo
mockMvc.perform(MockMvcRequestBuilders.put("/v1/account/increasement")
.contentType(MediaType.APPLICATION_JSON)
.requestAttr(RequestAttrKeyConstant.API_AUTH_ID, TEST_API_AUTH)
.param("userId", "" + TEST_USER_ID)
.param("amount", "" + TEST_AMOUNT)
.param("summary", "测试接口testAccountIncrease增加余额")
.param("certificateType", ""+CertificateTypeEnum.IN.code)).andExpect(MockMvcResultMatchers.status().isOk())
.andExpect(MockMvcResultMatchers.jsonPath("status").value(0))