【发布时间】:2013-04-08 22:36:54
【问题描述】:
我需要测试我项目的所有模型类。这是其中的一类
public class TMyData{
private mVar1;
private mVar2;
...
private TMyData(){
}
public static TMyData fromString(String str){
...
}
public String toString(){
...
}
}
简单来说,测试应该是:
1) 创建一个随机的 TMyData
2) 调用 toString
3) 从字符串调用
4) 检查它们是否相同
问题是创建随机的 TMyData。由于测试类是一个单独的类(TMyDataTest),我无法执行以下操作:
TMyData p = new TMyData(); //I can't, because its private
p.mVar1 = ...; // I can't because is also private
我不想仅仅因为测试而改变我所有的变量/方法的可见性......而且我也不希望用户访问私有变量(没有 getter 或 setter)
很多人一定遇到过类似的问题,因为所有项目都有自己的模型。哪种方法是正确的测试方法?
【问题讨论】:
-
以及 mVars 是从哪里来的?
-
它们来自另一个解析另一个对象的构造函数。这个其他对象来自外部库,我无法创建它。
标签: java android unit-testing