0

以下のようにAPIのセットを公開するクラスがあります

class MyDataProcessor{    
    private int M;
    private double[] data;

    public MyDataProcessor(int N,int M){
        this.M = M;
        this.data = new double[M];
        for(int i=0;i<M;i++){
            int randomX = //get a random value
            double v = processValue(randomX);
            this.data[i] = v;
        }
    private static double processValue(int randomX){
         //do some work on randomX and return a double value
    }

    private double mean(double[] a){
        double meanValue = //find mean of a
        return meanValue;
    }

    private double stddev(double[] a){
        double stdDevValue = //find stddev of a
        return stdDevValue;
    }

    public double lowerBoundConf(){
        double mean = mean(this.data);
        double sd = stddev(this.data);
        double lb = mean + (1.96*stddev)/Math.sqrt(this.M);
        return lb;
    }
}

ここで、メソッドを単体テストlowerBoundConfする必要があります。このメソッドに double[] 配列を提供することはできません (単純にする必要があります)。配列はコンストラクター内から取得する必要があります。テストを作成する方法がわかりません。これ。誰か助けてくれる?

4

2 に答える 2

2

クラスの機能をテストするには、データ配列にアクセスする必要があります。field package protected final を作成して、データ値に対してメソッドをテストします。

しかし、なぜ未知の乱数データで計算をテストするのでしょうか? これは役に立たない (宿題?) だけでなく、ランダムな結果でもあります。

于 2013-09-03T05:34:54.070 に答える