第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

Java不好的做法:將return語句添加到僅用于測試的方法?

Java不好的做法:將return語句添加到僅用于測試的方法?

繁星點點滴滴 2022-06-04 17:16:43
僅出于測試方法而不在實際代碼本身中使用它的目的而添加 return 語句是不好的做法嗎?作為一個示例,我正在測試一個 read 方法,然后是一系列方法,這些方法最終創(chuàng)建了一個對象,該對象的屬性從它正在讀取的文件的行中吸收。據(jù)我了解,可以使用 Mockito 測試讀取方法,而無需添加返回語句。或者可以測試是否readPerLine調(diào)用了另一種方法 ( ),但我還沒有找到合適的測試程序來做到這一點。如果使用正確的編碼程序,這兩個選項可能意味著我的一般問題不相關(guān),如果是,請告訴我。然而,目前以下兩個選項似乎是測試(部分)讀取方法的最簡單方法:添加一個 return 語句,其中包含該方法讀入的行數(shù)組,該語句在方法結(jié)束時執(zhí)行。通過測量對象的屬性是否正確來測試讀取方法和創(chuàng)建對象的后續(xù)方法的組合。并通過單獨測試后續(xù)方法。這不是首選,因為雙重錯誤,讀取方法中的 1 和后續(xù)方法的概念設(shè)計中的 1 可能會在此測試期間抵消,但會導(dǎo)致讀取壽命錯誤。修改 (read) 方法,使其返回一個行數(shù)組,該數(shù)組從 Main 傳遞給后續(xù)方法。我目前編寫的 read 方法的示例代碼:public void readFile(String filename) {        FileReader reader;        BufferedReader br;        String line = null;        try {                   br = new BufferedReader(new FileReader(filename));            while ((line = br.readLine()) != null) {                readPerLine(line); //converts line into properties for an object.            }              br.close();        } catch (FileNotFoundException e) {            // TODO Auto-generated catch block            e.printStackTrace();        } catch (IOException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }    }所以我還沒有解決下面的困境;我知道有時您需要重寫您的方法以進行測試。但我不知道添加功能,例如實際代碼未使用但僅用于測試的返回語句,是好還是壞的做法。另外,如果我這樣做,我仍然沒有完全測試讀取方法,調(diào)用另一個方法仍然沒有測試?;蛘?,如果我首先應(yīng)用適當(dāng)?shù)亩Y儀,是否根本不應(yīng)該出現(xiàn)這種困境。
查看完整描述

1 回答

?
三國紛爭

TA貢獻1804條經(jīng)驗 獲得超7個贊

我建議不要在方法中添加 return 語句來啟用測試,而是重新設(shè)計方法以分離一些功能。

我認(rèn)為問題出在這里:

readPerLine(line); //converts line into properties for an object.

也許你在這種方法上做得太多了。您可以將其分解為幾種不同的方法,例如:

  1. 讀取該行以獲取一個 String 數(shù)組

  2. 將字符串轉(zhuǎn)換為正確的數(shù)據(jù)類型

  3. 構(gòu)建你的對象并設(shè)置它的屬性

如果您這樣做,您可以檢查每個步驟的功能并為每個步驟進行測試。在測試 main 方法readFile(String filename)時,您可以使用 Mokito 檢查是否使用正確的參數(shù)調(diào)用了每個方法


查看完整回答
反對 回復(fù) 2022-06-04
  • 1 回答
  • 0 關(guān)注
  • 104 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號