您的位置:首页 > 编程语言 > Java开发

java孤立测试,eclipse3.3下,引入junit和jmock-1.2.0-jars.zip,成功测试

2008-08-19 14:44 459 查看
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;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: