亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用斷言 (JUnit) 來檢查 int?

如何使用斷言 (JUnit) 來檢查 int?

慕尼黑5688855 2023-10-12 17:06:44
我正在測試數據類型 int 的方法。它接受 2 個整數作為參數,并返回較大的數字。如何從我的測試包中正確調用它?到目前為止,這是我的代碼:public void testFindMaxNum(){    assertEquals("findMaxNum(FAILS)", ProgrammingProject4.findMaxNum(1,2),1);    assertEquals("findMaxNum(PASS)", ProgrammingProject4.findMaxNum(1,2),;}
查看完整描述

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));

  }

}

您的代碼中需要注意以下幾點:

  1. 您缺少測試框架的注釋,例如@Test。這意味著您的構建工具將無法找到并運行測試。

  2. 從該方法得出結果后,您將得到預期的結果。在 JUnit 中斷言它們應該是另一種方式(按照我的示例)。

  3. 您的代碼在一種方法中運行兩個測試。這是不好的做法,因為它使調試測試變得更加困難。此外,如果第一個斷言失敗,第二個斷言將不會運行。因此,將兩個測試分成兩種不同的方法會更好。

您可以看一下 Diffblue 的游樂場(完全公開我在 Diffblue 工作),這是一個將為一小段 Java 代碼示例編寫單元測試的工具。https://playground.diffblue.com

希望這一切都有道理。答案中有不少要點。如果有任何需要澄清的地方,請隨時發表評論。


查看完整回答
反對 回復 2023-10-12
  • 1 回答
  • 0 關注
  • 135 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號