1 回答

TA貢獻1789條經驗 獲得超8個贊
如果沒有調用的代碼(findMaxNum),我的答案很難完全準確。但是,您似乎缺少測試類中的一些注釋。
我假設您的方法 findMaxNum 的簽名如下所示:
public int findMaxNum(int i, int j)
基于此,您的測試代碼應如下所示:
import static org.junit.Assert.assertEquals;
import org.junit.Test;
public class ProgrammingProject4Test {
@Test
public void testFindMaxNumFirst() {
// Arrange
ProgrammingProject4 programmingProject4 = new ProgrammingProject4();
// Act and Assert
assertEquals("First number should be bigger than second",2, programmingProject4.findMaxNum(1,2));
}
@Test
public void testFindMaxNumSecond() {
// Arrange
ProgrammingProject4 programmingProject4 = new ProgrammingProject4();
// Act and Assert
assertEquals("Second number should be bigger,2, programmingProject4.findMaxNum(2,1));
}
}
您的代碼中需要注意以下幾點:
您缺少測試框架的注釋,例如@Test。這意味著您的構建工具將無法找到并運行測試。
從該方法得出結果后,您將得到預期的結果。在 JUnit 中斷言它們應該是另一種方式(按照我的示例)。
您的代碼在一種方法中運行兩個測試。這是不好的做法,因為它使調試測試變得更加困難。此外,如果第一個斷言失敗,第二個斷言將不會運行。因此,將兩個測試分成兩種不同的方法會更好。
您可以看一下 Diffblue 的游樂場(完全公開我在 Diffblue 工作),這是一個將為一小段 Java 代碼示例編寫單元測試的工具。https://playground.diffblue.com
希望這一切都有道理。答案中有不少要點。如果有任何需要澄清的地方,請隨時發表評論。
添加回答
舉報