티스토리 뷰
1. service
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:spring-context.xml")
public class UserServiceImplTest {
@Autowired
private UserService service;
/**
* 测试根据用户名查询用户
*/
@Test
public void getByUsername() {
User user = service.getByUsername("小明");
System.err.println(user);
}
/**
* 测试列表查询用户
*/
@Test
public void list() {
List<User> list = service.list();
System.err.println(list);
}
/**
* 测试修改密码
*/
@Transactional
@Test
public void updatePassword() {
User user = new User("测试用户", "123456");
service.save(user);
/* 密码修改前 */
User before = service.getByUsername("测试用户");
user.setPassword("654321");
/* 密码修改后 */
service.updatePassword(user);
User after = service.getByUsername("测试用户");
/* 断言判断修改密码前后的两个类不同 */
Assert.assertNotEquals(before, after);
}
/**
* 测试根据ID删除用户
*/
@Transactional
@Test
public void deleteById() {
int save = service.save(new User("测试用户", "123456"));
Assert.assertEquals(1, save);
User user = service.getByUsername("测试用户");
int delete = service.deleteById(user.getId());
Assert.assertEquals(1, delete);
}
/**
* 测试添加用户
*/
@Transactional
@Test
public void save() {
List<User> list = service.list();
System.err.println(list);
}
}
2. dao
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:spring-context.xml")
public class UserDaoImplTest {
@Autowired
private UserDao dao;
/**
* 测试根据用户名查询用户
*/
@Test
public void getByUsername() {
User user = dao.getByUsername("小明");
System.err.println(user);
}
/**
* 测试新建用户
*/
@Transactional
@Test
public void save() {
User user = new User("测试用户", "123456");
int save = dao.save(user);
Assert.assertEquals(1, save);
}
/**
* 测试修改密码
*/
@Transactional
@Test
public void update() {
User user = new User("测试用户", "123456");
dao.save(user);
/* 密码修改前 */
User before = dao.getByUsername("测试用户");
user.setPassword("654321");
/* 密码修改后 */
dao.update(user);
User after = dao.getByUsername("测试用户");
/* 断言判断修改密码前后的两个类不同 */
Assert.assertNotEquals(before, after);
}
/**
* 测试删除用户
*/
@Transactional
@Test
public void delete() {
int save = dao.save(new User("测试用户", "123456"));
Assert.assertEquals(1, save);
User user = dao.getByUsername("测试用户");
int delete = dao.delete(user.getId());
Assert.assertEquals(1, delete);
}
/**
* 测试用户列表
*/
@Test
public void list() {
List<User> list = dao.list();
System.err.println(list);
}
}
3. controller
/**
* 1.@WebAppConfiguration:测试环境使用,用来表示测试环境使用的ApplicationContext将是WebApplicationContext类型的;
* 2.@ContextConfiguration: 指定测试类的容器环境
*/
@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
@ContextConfiguration(locations = {"classpath:spring-context.xml"})
public class UserControllerTest {
/**
* 模拟浏览器
*/
MockMvc mvc;
/**
* 加载WEB的上下文
*/
@Autowired
WebApplicationContext context;
@Before
public void before() {
// mvc = MockMvcBuilders.standaloneSetup(new TestController()).build();
mvc = MockMvcBuilders.webAppContextSetup(context).build();//建议使用这种
}
/**
* 测试用户列表
*
* @throws Exception
*/
@Test
public void list() throws Exception {
mvc.perform(
MockMvcRequestBuilders.get("/user/list"))
.andExpect(status().isOk()) // 期待返回状态码200
.andDo(print()); // 打印返回的 http response 信息
}
/**
* 测试添加用户
* 期待:Body = 1
*
* @throws Exception
*/
@Transactional
@Test
public void save() throws Exception {
mvc.perform(
MockMvcRequestBuilders.post("/user/save")
.param("username", "测试用户1")
.param("password", "123456"))
.andExpect(status().isOk())
.andDo(print());
}
/**
* 测试删除用户
* 期待:Body = 1
*/
@Transactional
@Test
public void delete() throws Exception {
mvc.perform(MockMvcRequestBuilders.post("/user/delete")
.param("id", "1"))
.andExpect(status().isOk())
.andDo(print());
}
/**
* 测试根据用户名查询用户
*/
@Test
public void getByUsername() throws Exception {
mvc.perform(MockMvcRequestBuilders.get("/user/getByUsername")
.param("username", "小明"))
.andExpect(status().isOk())
.andDo(print());
}
/**
* 测试修改密码
* 期待:Body = 1
*/
@Transactional
@Test
public void updatepassword() throws Exception {
mvc.perform(MockMvcRequestBuilders.post("/user/updatepassword")
.param("username", "小明")
.param("newPassword", "654321"))
.andExpect(status().isOk())
.andDo(print());
}
}
출처: https://blog.csdn.net/Little_fxc/article/details/83900502
'TDD' 카테고리의 다른 글
[TDD] spring mvc file uplad 테스트 (0) | 2019.12.11 |
---|---|
Mockito 사용법2 (0) | 2019.07.04 |
Mockito 사용법 (0) | 2019.07.04 |
JUnit 사용법 (0) | 2019.07.04 |
JUnit Test에서 application context 로딩 (0) | 2019.07.04 |