@RunWith(SpringRunner.class)
@SpringBootTest(classes = WebmanagerApplication.class)
//配置事务的回滚,对数据库的增删改都会回滚,便于测试用例的循环利用
@TransactionConfiguration(transactionManager = "transactionManager", defaultRollback = true)
@WebAppConfiguration
public class CollectControllerTest {
private MockMvc mockMvc;
@Autowired
WebApplicationContext webApplicationContext;
@Before
public void setUp() throws Exception {
//MockMvcBuilders使用构建MockMvc对象,通过webApplicationContext获取控制器
mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build();
//通过类名获取控制器,没有webApplicationContext,不加载项目配置
// mockMvc = MockMvcBuilders.standaloneSteup(userController).build();
}
/**
* 收藏收集
*/
@Test
public void collectTest() throws Exception {
// 执行一个请求
mockMvc.perform(MockMvcRequestBuilders
// 构造一个请求
.post("/collect/collect")
// 添加参数
// Mock将URL的参数和通过
// 使用param添加的参数添加到request中的parameter中了,
// 而将content内容、类型并没有进行解析,直接添加到request的content中了。
.param("favoritesId", "12")
.param("title", "测试用例")
.param("url", "http://127.0.0.1:8080/")
// .content(collectStr)
// 指定传过来的是什么类型
.accept(MediaType.APPLICATION_JSON))
// 添加验证断言
.andExpect(MockMvcResultMatchers.status().isOk())
// 添加结果处理器
.andDo(MockMvcResultHandlers.print())
// 进行自定义断言/进行下一步的异步请求
.andReturn();
}
}