首頁  >  文章  >  Java  >  如何在命令列程式的 JUnit 測試中模擬使用者輸入?

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

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-10-28 14:41:02297瀏覽

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

使用 JUnit 模擬 System.in 測試

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

繞過System.in 並注入模擬使用者輸入,請依照下列步驟操作:

  1. 建立抽象層:
    避免在程式碼中直接呼叫System.in。引入抽象層來管理輸入來源。您可以透過依賴注入或傳遞 I/O 上下文來實現這一點。
  2. 動態切換 System.in:
    使用 Java 8 流來操作 System.in溪流。例如:

    <code class="java">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);
    }</code>

以上是如何在命令列程式的 JUnit 測試中模擬使用者輸入?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn