package firstjunittest;
import junit.framework.Test;
import junit.framework.TestSuite;
import org.jmock.Mock;
import org.jmock.MockObjectTestCase;
public class UserServiceTest extends MockObjectTestCase {
private UserService userService = new UserServiceImpl();
private Mock userDAO = null;
public UserServiceTest(String testName) {
super(testName);
}
//初始化
protected void setUp() throws Exception {
userDAO = new Mock(UserDAO.class);
userService.setUserDAO((UserDAO)userDAO.proxy());
}
protected void tearDown() throws Exception {
userDAO = null;
userService=null;
}
public static Test suite() {
TestSuite suite = new TestSuite(UserServiceTest.class);
return suite;
}
public void testGetUser() {
User fakeUser = new User("John");
userDAO.expects(once()).method("getUser").with(eq(2L)).will(returnValue(fakeUser));
User user = userService.getUser(2L);
assertNotNull(user);
assertEquals("John", user.getName());
}
public void testSaveUser() {
User fakeUser = new User("John");
userDAO.expects(this.atLeastOnce()).method("getUser").with(eq(1L)).will(returnValue(fakeUser));
assertEquals("John", ((User)(userService.getUser(1L))).getName());
fakeUser.setName("xhz");
userDAO.expects(once()).method("saveUser").with(same(fakeUser));
userService.saveUser(fakeUser);
assertEquals("xhz", ((User)(userService.getUser(1L))).getName());
}
}
package firstjunittest;
public class UserServiceImpl implements UserService {
private UserDAO userDAO;
public UserServiceImpl() {
}
public void setUserDAO(UserDAO userDAO) {
this.userDAO = userDAO;
}
public User getUser(Long id) {
return userDAO.getUser(id);
}
public void saveUser(User user) {
userDAO.saveUser(user);
}
}
package firstjunittest;
public interface UserService {
public void setUserDAO(UserDAO userDAO);
public void saveUser(User user);
public User getUser(Long id);
}
package firstjunittest;
public interface UserDAO {
public void saveUser(User user);
public User getUser(Long id);
}
package firstjunittest;
public class User {
private String name;
public User() {
}
public User(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
import junit.framework.Test;
import junit.framework.TestSuite;
import org.jmock.Mock;
import org.jmock.MockObjectTestCase;
public class UserServiceTest extends MockObjectTestCase {
private UserService userService = new UserServiceImpl();
private Mock userDAO = null;
public UserServiceTest(String testName) {
super(testName);
}
//初始化
protected void setUp() throws Exception {
userDAO = new Mock(UserDAO.class);
userService.setUserDAO((UserDAO)userDAO.proxy());
}
protected void tearDown() throws Exception {
userDAO = null;
userService=null;
}
public static Test suite() {
TestSuite suite = new TestSuite(UserServiceTest.class);
return suite;
}
public void testGetUser() {
User fakeUser = new User("John");
userDAO.expects(once()).method("getUser").with(eq(2L)).will(returnValue(fakeUser));
User user = userService.getUser(2L);
assertNotNull(user);
assertEquals("John", user.getName());
}
public void testSaveUser() {
User fakeUser = new User("John");
userDAO.expects(this.atLeastOnce()).method("getUser").with(eq(1L)).will(returnValue(fakeUser));
assertEquals("John", ((User)(userService.getUser(1L))).getName());
fakeUser.setName("xhz");
userDAO.expects(once()).method("saveUser").with(same(fakeUser));
userService.saveUser(fakeUser);
assertEquals("xhz", ((User)(userService.getUser(1L))).getName());
}
}
package firstjunittest;
public class UserServiceImpl implements UserService {
private UserDAO userDAO;
public UserServiceImpl() {
}
public void setUserDAO(UserDAO userDAO) {
this.userDAO = userDAO;
}
public User getUser(Long id) {
return userDAO.getUser(id);
}
public void saveUser(User user) {
userDAO.saveUser(user);
}
}
package firstjunittest;
public interface UserService {
public void setUserDAO(UserDAO userDAO);
public void saveUser(User user);
public User getUser(Long id);
}
package firstjunittest;
public interface UserDAO {
public void saveUser(User user);
public User getUser(Long id);
}
package firstjunittest;
public class User {
private String name;
public User() {
}
public User(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}