繁体   English   中英

junit 测试没有 static 方法

[英]junit testing without static methods

我需要为各种功能创建测试,这些功能不是 static(不允许更改)。 例如

public Double average(int[] scores) {
    int sum = Arrays.stream(scores).sum();
    return (double) sum/scores.length;
}

测试:

public void testAverage (){
    int[] scores = {25, 100, 90, 72};
    Double expected = 59.25;
    Double result = LogicProblems.average(scores);
    assertEquals(expected, result);
}

接口: public Double average(int[] scores);

这样做,我收到错误消息“无法从 static 上下文调用非静态方法”

你能告诉我为什么上下文是 static,以及如何解决/使用它吗?

由于您无法更改LogicProblems的代码,因此您需要在测试中实例化它:

public void testAverage (){
    int[] scores = {25, 100, 90, 72};
    Double expected = 59.25;
    LogicProblems lp = new LogicProblemsImpl(); // Or better yet, in a @Before method
    Double result = lp.average(scores);
    assertEquals(expected, result);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM