FileInputStream이 닫혀 있는지 확인하는 JUnit 테스트를 작성하려면 어떻게해야합니까? 내가 지금 어떻게하고 싶습니다,이 코드 예제 훨씬 이해가되지 않지만FileInputStream이 닫혀 있는지 테스트하는 방법은 무엇입니까?
@Test
public void test() {
FileInputStreamDemo.main("file.txt");
// test here, if input stream to file is closed correctly
}
:
다음 코드를 고려,
import java.io.FileInputStream;
class FileInputStreamDemo {
public static void main(String args[]) throws Exception {
FileInputStream fis = new FileInputStream(args[0]);
// Read and display data
int i;
while ((i = fis.read()) != -1) {
System.out.println(i);
}
fis.close();
}
}
는이 같은 테스트를 작성하고 싶습니다 FIS가 닫혔는지 확인하는 JUnit 테스트를 작성합니다. (가능한 경우 : 원본 FIS 개체에 대한 참조가없는 경우)
실제로 멋진 솔루션입니다. 관심있는 방법으로 두 개의 파일 이름에서 두 개의 FIS를 만들면 어떻게 할 수 있습니까? 첫 번째 FIS가 올바르게 닫힌 경우, 두 번째가 생성시 예외를 throw 할 때 테스트하는 방법? –
먼저 MockInputStream은 가끔 예외를 throw 할 수 있어야합니다. 당신은 테스트에서 그것을 제어하고 예외를 던질 수있는 속성을 설정합니다. mock 객체에서 정적 변수를 사용하여 인스턴스화를 시도 할 때 예외를 throw하도록 지시 할 수 있습니다. 더 좋은 방법은 같은 일을 할 수있는 공장을 이용하는 것입니다. 그런 다음 예외를 항상 throw하는 모의 팩토리에 대한 테스트에서 팩토리를 변경할 수 있습니다. –