[英]Java bad practice: adding return statement to method solely for testing?
僅出於測試方法而不在實際代碼本身中使用返回語句的目的而添加return語句是不好的做法嗎?
作為一個示例,我正在測試一個read方法,然后是一系列方法,這些方法最終將創建一個對象,該對象的屬性被其正在讀取的文件行所吸收。
據我了解,可以使用Mockito測試讀取方法,而不必添加return語句。 或者可以測試是否調用了另一種方法( readPerLine
),但是我還沒有找到合適的測試程序來執行此操作。 這兩個選項可能意味着如果使用正確的編碼過程,我的一般問題就不重要了,如果是這樣,請告訴我。
但是,目前,以下兩個選項似乎是測試read方法(一部分)的最簡單方法:
我當前編寫的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();
}
}
因此,我尚未解決以下難題。
我建議不要在方法中添加return語句以啟用測試,而應該對方法進行重做以分離某些功能。
我認為問題出在這里:
readPerLine(line); //converts line into properties for an object.
也許您在這種方法上做得太多。 您可以將其分解為幾種不同的方法,例如:
如果這樣做,則可以檢查每個步驟的功能並為每個步驟進行測試。 在測試主要方法readFile(String filename)
,您可以使用Mokito檢查是否使用正確的參數調用了每個方法
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.