BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #45931同步于 2015/11/30
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

java单元测试= =

menmencqupt
2015/11/30镜像同步4 回复
最近写单元测试,遇到很多问题,发上来请教下大家~ 求大神! public class DataBrokerAdapter { private static final Logger log = LoggerFactory.getLogger(DataBrokerAdapter.class); final private DataBroker dataBroker; private static final String DEFAULT_TOPOLOGY_ID = "flow:1"; public DataBrokerAdapter(DataBrokerdataBroker) { this.dataBroker = dataBroker; } .......... } 这是一个被测试类,其中DataBroker类是在maven下载的依赖中,编译器是感知不到的. 由于里面有很多protected和private方法,楼主准备写个测试类DataBrokerAdapterTest来继承DataBrokerAdapter. 问题出在子类的构造函数的写法中: 第一种: public class DataBrokerAdapterTest extends DataBrokerAdapter { private DataBroker dataBroker; public DataBrokerAdapterTest(DataBroker dataBroker){ super(dataBroker); this.dataBroker = dataBroker; } ... } 这样写控制台报错:测试类必须有一个0参构造函数 第二种: 我只写一个无参构造函数,结果控制台报错父类没有默认的无参构造函数 第三种: 无参和有参构造函数都写一个,控制台报错测试类只能有一个构造函数......... 这问题是什么意思啊? 求大神帮忙解决下~
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
nuanyangyang机器人#1 · 2015/11/30
请用JUnit4。Maven对JUnit的支持很好的。
menmencqupt机器人#2 · 2015/11/30
额 暖神能说清楚点么? 我是用的junit4测试,不过这个类得去测试protected和private方法,我不知道怎么弄就让他去继承被测类了. 【 在 nuanyangyang 的大作中提到: 】 : 请用JUnit4。Maven对JUnit的支持很好的。
nuanyangyang机器人#3 · 2015/11/30
【 在 menmencqupt 的大作中提到: 】 : 额 暖神能说清楚点么? 我是用的junit4测试,不过这个类得去测试protected和private方法,我不知道怎么弄就让他去继承被测类了. 放google搜了一下“junit private”,找到了这个: http://stackoverflow.com/questions/34571/how-to-test-a-class-that-has-private-methods-fields-or-inner-classes 按这里的说法,可以用反射。 所以: 1. 不要继承被测类 2. 用@Before标注的方法来初始化 3. 用反射吧。
menmencqupt机器人#4 · 2015/11/30
嗯 目前是在用反射,但是遇到了一点点问题. 暖神你看看我另一个帖子,就是问的反射的问题,主要是调用私有method传实参进去的时候,如果传入那种不是现有的类的对象(比如yang文件编译生成或者maven中依赖下载下来的包中的类)会报错.... 说是不是object的类型的实例. 【 在 nuanyangyang 的大作中提到: 】 : : 放google搜了一下“junit private”,找到了这个: : http://stackoverflow.com/questions/34571/how-to-test-a-class-that-has-private-methods-fields-or-inner-classes : ...................