0

我需要测试我项目的所有模型类。这是其中一堂课

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)

很多人一定有类似的问题,因为所有项目都有自己的模型。哪个是测试它的正确方法?

4

1 回答 1

0

我只能通过反思来找到解决方案。

Field f = tmydata.getClass().getDeclaredField("mVar1"); //NoSuchFieldException
f.setAccessible(true);
f.set(tmydata,dataToSet);
于 2013-04-08T22:41:58.197 回答