簡體   English   中英

'巧合編程'練習:Java文件編寫器

[英]'Programming by Coincidence' Excercise: Java File Writer

我剛剛閱讀了“ 巧合編程 ”一文。 在頁面的末尾有練習。 一些代碼片段是“巧合編程”的案例。 但我無法弄清楚這篇文章中的錯誤:

此代碼來自通用Java跟蹤套件。 該函數將字符串寫入日志文件。 它通過了單元測試,但是當其中一個Web開發人員使用它時失敗。 它依賴什么巧合?

  public static void debug(String s) throws IOException {
    FileWriter fw = new FileWriter("debug.log", true);
    fw.write(s);
    fw.flush();
    fw.close();
  }

這有什么問題?

此代碼依賴於一個名為debug.log的文件,該文件在應用程序的執行目錄中是可寫的。 很可能Web開發人員的應用程序沒有使用此文件設置,並且該方法在嘗試使用它時失敗。

此代碼的單元測試將起作用,因為原始開發人員在正確的位置(並具有正確的權限)具有正確的文件。 這是允許單元測試成功的巧合。

有趣的花絮。 理想情況下,必須從類路徑中提取資源。 然而,盡管如此,人類的頑固是無止境的。 如果文件存在於測試環境的類路徑(例如eclipse)中,但生產部署中缺少該文件,會發生什么?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM