JUnit中TestCase的问题

GFox 2004-04-17 09:19:22
我刚刚开始学习写TestCase,觉得有些疑惑:如果一个类做某件事要两个以上方法配合时,TestCase应该怎么写?

比如说像下面的代码,无法单独测试Get或Set:

代码:
public class User {
public String getName();
public void setName(String name);
}

public class UserTest extends TestCase {

public void testSetName() {
User user = new User();
String name1 = "name1";
user.setName(name1);

String name2 = user.getName();
assertEquals("Name",name1,name2);
}

public void testGetName() {
//难道这里再写一次和上面一模一样的代码?
//又或者不要这个方法?
//或者是两个方法合为一个testGetSetName()?
}
}
...全文
125 点赞 收藏 10
写回复
10 条回复
GFox 2004年04月29日
大约就是这个样子吧^_^
回复 点赞
totodo 2004年04月24日
To GFox
测试的目的就是,
1,看Set一个值是否正确,
2,再看Get一个值是否正确。

其实,既然testSetName把 testGetName里的内容已经写了。
所以写不写已经无所谓了,我只是保持一下结构而已T_T ,见谅。
回复 点赞
liuyk 2004年04月24日
分开写,合并写都是可以的,只要你的测试把所有代码都运行就可以了。
回复 点赞
GFox 2004年04月24日
to totodo(土豆仙)
你这样我觉得不太对,
testGetName() 等于就是没写...

to jkit(不再灌水)
你的意思就是“两个方法合为一个testGetSetName()? ”?是吗?
回复 点赞
xuxijian2003 2004年04月20日
up
回复 点赞
filippo1980 2004年04月20日
mark
回复 点赞
jkit 2004年04月20日
可以两个方法一起测。
init
call method1
call method2
assert

另:楼上的testGetName()是错的,没有init直接assert肯定不行的。
回复 点赞
totodo 2004年04月20日
测试是根据测试案例来的,,根据你的一个个步骤来的。


所以这里的步骤是 先Set一个,然后再get一个。

public class UserTest extends TestCase {

public void testSetName() {
User user = new User();
String name1 = "name1";
user.setName(name1);

String name2 = user.getName();
assertEquals("Name",name1,name2);
}

public void testGetName() {
assertEquals("name1",user.getName()); //
}
}
回复 点赞
totodo 2004年04月20日
是啊,就是这样子写。
回复 点赞
GFox 2004年04月20日
没有人知道吗?
回复 点赞
发动态
发帖子
Java EE
创建于2007-09-28

3.7w+

社区成员

22.5w+

社区内容

J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区公告
暂无公告