簡體   English   中英

JUnit強制BufferedReader拋出IOException

[英]JUnit force BufferedReader to throw IOException

我有以下方法

    public static String readPostParams(Request request, String param) {

    BufferedReader br = new BufferedReader(new InputStreamReader(request.getBodyAsStream()));
    String line;

    try {
        while ((line = br.readLine()) != null) {
            if (line.contains(param)) {
                //System.out.println("---> " + param + " :" + getValue(line));
                return getValue(line);
            }
        }
    } catch (IOException ex) {
        // Ignore
    }
    return "";
}

我想要一個JUnit單元測試來強制BufferedReader拋出IOException,因此我也可以介紹該部分。

如果要測試此方法的IOException ,應通過刪除try catch塊並將throws子句添加到方法中, 異常傳播到調用方法:

    public static String readPostParams(Request request, String param) throws IOException;

@Test注釋有一個稱為“ expected”的屬性,您可以使用該屬性檢查異常。 從您的方法檢查IOexception的測試用例將看起來像這樣:

@Test(expected=IOException.class)
public void shouldReadPostParamsThrowIOExceptionIfInvalidRead(){
}

如果文件“正在使用”,則應該得到IOException ,因此您可以嘗試以下操作:
(我從未測試過)

在您測試使用

final RandomAccessFile lockFile = new RandomAccessFile(fileName, "rw");
lockFile.getChannel().lock();

然后從上方調用您的方法,並在完成后將文件解鎖。

暫無
暫無

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

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