單元測(cè)試
1.先測(cè)試Services中的方法
/**
* 根據(jù)id查詢一個(gè)用戶
* @param id
* @return
*/
public User findOne(Integer id){
return userRepository.findOne(id);
}
2.在項(xiàng)目目錄中的test/java/com.study.springbootdemo中新建測(cè)試類
import com.study.springbootdemo.domain.User;
import com.study.springbootdemo.services.UserService;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
public class UserServicesTest {
@Autowired
private UserService userService;
@Test
public void findOneTest(){
User user = userService.findOne(1);
//使用斷言
Assert.assertEquals(new Integer(15),user.getAge());
}
}
說(shuō)明:斷言是指我們的預(yù)期結(jié)果是否程序的執(zhí)行結(jié)果是否一致券册,其中使用了@RunWith(SpringRunner.class)注解味榛、@SpringBootTest注解。
3.運(yùn)行UserServicesTest葡公,測(cè)試結(jié)果
image
IDEA簡(jiǎn)單方法進(jìn)行測(cè)試
第一步選中要測(cè)試的方法
image
第二步選擇新建一個(gè)測(cè)試類
image
第三步選擇要測(cè)試的方法
image
第四步結(jié)果如下
image
3.測(cè)試API(controller中的方法這里使用IDEA生成API測(cè)試類和方法倒淫,這里是要模仿發(fā)送請(qǐng)求的測(cè)試氯质,如下所示:
@RunWith(SpringRunner.class)
@SpringBootTest
@AutoConfigureMockMvc
public class UserControllerTest {
@Autowired
private MockMvc mvc;
@Test
public void userList() throws Exception {
mvc.perform(MockMvcRequestBuilders.get("/users"))
.andExpect(MockMvcResultMatchers.status().isOk());
}
}
說(shuō)明:
- 這里比Services測(cè)試多了一個(gè)注解@AutoConfigureMockMvc髓涯。
- MockMvcRequestBuilders.get("/users")表示發(fā)送的是get請(qǐng)求杂数,當(dāng)然還有put等請(qǐng)求
- andExpect表示使用斷言
- MockMvcResultMatchers.status()表示獲取的是狀態(tài)