」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何在命令列程式的 JUnit 測試中模擬使用者輸入?

如何在命令列程式的 JUnit 測試中模擬使用者輸入?

發佈於2024-11-23
瀏覽:333

How Can You Simulate User Input in JUnit Tests for Command-Line Programs?

使用JUnit 進行測試模擬系統

在軟體測試領域,人們在處理以下問題時經常面臨模擬用戶輸入的挑戰命令列程式.當程式提示透過 System.in 輸入時,如何在 JUnit 測試中自動執行此行為?

解決方案

解決方案
  1. 繞過System.in 並注入模擬用戶輸入,按照以下步驟操作:
  2. 建立抽象層:

    避免在內部直接呼叫System.in你的程式碼。引入抽象層來管理輸入來源。您可以透過依賴注入或傳遞 I/O 上下文來實現此目的。

    String data = "Hello, World!\r\n";
    InputStream stdin = System.in;
    try {
        System.setIn(new ByteArrayInputStream(data.getBytes()));
        Scanner scanner = new Scanner(System.in);
        System.out.println(scanner.nextLine());
    } finally {
        System.setIn(stdin);
    }
    使用 Java 8 流來操作 System.in溪流。例如:

String data = "Hello, World!\r\n"; 輸入流 stdin = System.in; 嘗試 { System.setIn(new ByteArrayInputStream(data.getBytes())); 掃描器掃描器 = new Scanner(System.in); System.out.println(scanner.nextLine()); } 最後 { System.setIn(stdin); }How Can You Simulate User Input in JUnit Tests for Command-Line Programs?

最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3