나는 아래의 코드를 가지고있다. param 트리거로 전달 된 JSONObject를 예외로 만들 수있는 방법은 무엇입니까?JSONObject에 대한 IOException을 테스트하는 방법은 무엇입니까? 나는 IOException가 테스트하는 JUnit 테스트를 작성하는 것을 시도하고있다</p> <pre><code>public static void writeJson(JSONObject outputFinal) throws IOException { fw.write(outputFinal.toString(3)); fw.flush(); fw.close(); } </code></pre> <p>:
0
A
답변
0
JSONObject가 예외를 발생시켜야하나요, 아니면 그 중 하나만 필요합니까? 어떤 종류의 JSONObject (라이브러리)를 지정하지 않았지만 빠른 검색에서는 IOException의 하위 클래스가 아닌 JSONException을 throw하는 것을 보여 주므로 toString(3)
메서드를 사용하여 JSONException을 발생시킬 수는 없습니다.
fw
의 생성 방법이나 테스트에 액세스 할 수 있는지 여부에 대해 말씀하지 않았습니다. fw
이 의 구현이라고 가정하면 writeJson
을 호출하기 전에 예외를 throw하여 예외가 throw 될 수 있습니다.
당신이 시험 방법에 fw
에 대한 액세스 권한을 얻을 수 있다면 단지 writeJson
를 호출하기 전에 fw.close()
를 호출하면 기본적으로 java.io.IOException: Stream closed
0
을 얻을 것이다, 그것은 된 JSONObject가 PARAM 트리거로 전달하게하는 것은 불가능는 IOException의 IO 오류 파일에 쓰는 내용이 아닙니다. 보통 현재 사용자의 스트림 오류 또는 파일 액세스 권한 문제로 인해 발생합니다. 그래서 당신이 쓰기를 원하는 파일의 권한을 (모든 사람이 접근을 거부했다) 편집하려고 할 것 같아요, 그리고 코드를 실행할 때 IOException의 하위 클래스 인 java.io.FileNotFoundException이 발생합니다. 희망이 도움이됩니다.