1 回答

TA貢獻(xiàn)1789條經(jīng)驗(yàn) 獲得超8個(gè)贊
如果沒有調(diào)用的代碼(findMaxNum),我的答案很難完全準(zhǔn)確。但是,您似乎缺少測(cè)試類中的一些注釋。
我假設(shè)您的方法 findMaxNum 的簽名如下所示:
public int findMaxNum(int i, int j)
基于此,您的測(cè)試代碼應(yīng)如下所示:
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));
}
}
您的代碼中需要注意以下幾點(diǎn):
您缺少測(cè)試框架的注釋,例如@Test。這意味著您的構(gòu)建工具將無(wú)法找到并運(yùn)行測(cè)試。
從該方法得出結(jié)果后,您將得到預(yù)期的結(jié)果。在 JUnit 中斷言它們應(yīng)該是另一種方式(按照我的示例)。
您的代碼在一種方法中運(yùn)行兩個(gè)測(cè)試。這是不好的做法,因?yàn)樗拐{(diào)試測(cè)試變得更加困難。此外,如果第一個(gè)斷言失敗,第二個(gè)斷言將不會(huì)運(yùn)行。因此,將兩個(gè)測(cè)試分成兩種不同的方法會(huì)更好。
您可以看一下 Diffblue 的游樂場(chǎng)(完全公開我在 Diffblue 工作),這是一個(gè)將為一小段 Java 代碼示例編寫單元測(cè)試的工具。https://playground.diffblue.com
希望這一切都有道理。答案中有不少要點(diǎn)。如果有任何需要澄清的地方,請(qǐng)隨時(shí)發(fā)表評(píng)論。
添加回答
舉報(bào)