use mockito framework to create UT(单元测试)

after Maven project has been created.

let's use the mockito to create some UT.

create several files below in the src/main/java folder:

create a class :

public class User {
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
private String id;
private String name;
private Integer age;
// getter,setter

}

create two interface:

public interface UserDao {
User insertUser(User user);

void deleteUser(User user);
}

public interface UserService {
User insertUser(User user);

void deleteUser(User user);
}

create a class file:

public class UserServiceImpl implements UserService {

private UserDao userDao;

public UserServiceImpl() {}

public UserServiceImpl(UserDao userDao) {
this.userDao = userDao;
}

public User insertUser(User user) {
return userDao.insertUser(user);
}

public void deleteUser(User user) {
userDao.deleteUser(user);
}
}

create testfile below in the src/test/java folder:

// 在开发中有接口UserDao但是没有实现,因此UserService里面的userDao属性也是没有实现的,
// 模拟Spring给UserService里面的userDao注入一个实现,实际上没有注入,而仅仅是mock了一个userDao
// 在userService调用insertUser(User user)方法的时候就能模拟实现
// 当然这里仅仅mock了方法调用返回,还有mock异常,验证调用次数等
// 从整个来讲,这个框架是十分简单易用功能强大的,这里的简单是指使用简单,框架本身是相当复杂的

import static org.junit.Assert.*;
import org.junit.Assert;
import org.junit.Test;
import org.mockito.Mockito;

public class UserServiceTest {

private UserService userService;

@Test
public void insertUserTest() {

// pojo对象
User user = new User();
user.setId("123");
user.setName("Jay");
user.setAge(100);

// mock一个userDao对象,本来是不存在的
UserDao userDao = Mockito.mock(UserDao.class);
Mockito.when(userDao.insertUser(user)).thenReturn(user);
//User u = userDao.insertUser(user);

// 这里模拟Spring给userService注入userDao
userService = new UserServiceImpl(userDao);
User us = userService.insertUser(user);

// 测试结果ok
assertEquals(us, user);


}
}

posted on 2015-08-18 19:08  艾米刀鱼  阅读(151)  评论(0)    收藏  举报

导航