Gir*_*att 6 java junit unit-testing getter-setter
我的项目中有很多java bean.我需要为它们生成一个JUnit Test类.使用Eclipse 3.2和junit 4.4生成的测试方法如下所示:
public void testGetName() {
// fail("Not yet implemented");
}
@Test
public void testSetName() {
// fail("Not yet implemented");
}
@Test
public void testGetEmployeeid() {
// fail("Not yet implemented");
}
@Test
public void testSetEmployeeid() {
// fail("Not yet implemented");
}
Run Code Online (Sandbox Code Playgroud)
我的一些豆子有超过100个领域......
有没有办法可以为getter和setter提供单一的测试方法 testEmployeeid(),testName()这样在这些方法中我可以测试我的setter和getter而不是使用2 diff.他们的测试方法......
我应该如何配置eclipse来做到这一点?
Pét*_*rök 23
测试驱动开发的理念是"测试可能破坏的一切".也就是说,将精力集中在有用的测试上,而不是为了它而编写测试.
Getter和setter几乎总是琐碎的代码,不值得自己测试.
我知道这不是你的请求的直接答案,但我认为它可能仍然有助于指出这一点;-)那么为什么你真的需要首先为所有那些吸气剂和制定者编写测试?
Bri*_*new 11
如果一个类中有100个字段(带有相应的setter/getters),我怀疑你的对象模型没有正确分解.100多个字段听起来像一个对象的非常多的字段,我猜它有几个职责可以分成许多更专业的对象.
您也许可以使用Apache Commons的"beanutils"来帮助自动执行此操作:
例如,有一种方法describe(Object bean)将返回所有可读属性(即getter)的映射.
然后迭代该地图并调用:
setSimpleProperty(Object bean, String name, Object value)
Run Code Online (Sandbox Code Playgroud)
和
public static Object getSimpleProperty(Object bean, String name)
Run Code Online (Sandbox Code Playgroud)
虽然我同意其他海报而不是吸气剂/安装者是非常微不足道的 - 我认为它仍然值得测试 - 消除错别字,测试属性改变听众等.
例如,这将动态提取bean的getter:
import java.io.Serializable;
import java.util.Set;
import org.apache.commons.beanutils.PropertyUtils;
public class MyTestBean implements Serializable {
private int a;
private int b;
private int c;
private String x;
private String y;
private String z;
public static void main(String[] args) throws Exception {
MyTestBean bean=new MyTestBean();
Set prop=PropertyUtils.describe(bean).keySet();
for (Object o : prop) {
System.out.println((String)o);
}
}
public int getA() {
return a;
}
public void setA(int a) {
this.a = a;
}
public int getB() {
return b;
}
public void setB(int b) {
this.b = b;
}
public int getC() {
return c;
}
public void setC(int c) {
this.c = c;
}
public String getX() {
return x;
}
public void setX(String x) {
this.x = x;
}
public String getY() {
return y;
}
public void setY(String y) {
this.y = y;
}
public String getZ() {
return z;
}
public void setZ(String z) {
this.z = z;
}}
Run Code Online (Sandbox Code Playgroud)
您需要将BeanUtils和CommonsLogging以及两个库的JAR下载到您的项目中以运行此代码.
| 归档时间: |
|
| 查看次数: |
23709 次 |
| 最近记录: |