java - 在构造函数中创建数据时如何对 java 方法进行单元测试

标签 java unit-testing

我有一个类,它公开了一组 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[] 数组(这会使事情变得简单)。该数组必须来自构造函数内部。我不知道如何为此编写测试。有人可以帮忙吗?

最佳答案

为了测试类的任何功能,您需要访问数据数组。将字段包设置为 protected Final,以根据数据值测试方法。

但是为什么要对未知的随机数据进行测试计算呢?这是没用的(作业?),而且只是随机结果。

关于java - 在构造函数中创建数据时如何对 java 方法进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18584315/

相关文章:

asp.net - 如何在 ASP.NET 5/MVC 6 的单元测试中访问 HttpContext

java - Spring MVC 休息 : No mapping found for HTTP request with URI [/ecommerce-api/rest/checkout] in DispatcherServlet

java - 用于比较 HTML 文件并生成 HTML 或 XML 格式报告的工具

python - 将上下文管理器与 Python assertRaises 结合使用

java - 如何对日志上的消息进行单元测试?

ios - 如何在 iOS 上对不应该公开的功能进行单元测试?

java - Android中的简单音频播放停止

Java:监听具有更多线程的单个端口与监听多个端口

java - java中的handlebars.js实现是否存在?

Android Eclipse 插件 : Instrumentation Test Runner not specified