簡體   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