Java 응용 프로그램에는 이름 만 사용하여 파일을 저장하는 클래스 메서드가 있습니다.
public void doSomething(){
final File file = new File("XXX"+(new Random().next())+".txt");
file.createNewFile();
}
그런 다음 JUnit 4를 사용한 단위 테스트 에서 메서드를 실행하는 클래스를 실행 XXX.txt
하고 프로젝트의 루트 폴더에 이름 으로 생성 된 파일을 확인합니다 .
@Test
public void doSomethingTest() throws Exception{
//call doSomething();
Path path = //to project folder
Files.delete(path);
}
방법을 사용 @After
하여 삭제할 수 있도록이 경로를 동적으로 가져 오려면 어떻게 해야합니까?
가장 간단한 방법은 파일을 생성 할 기본 디렉토리를 삽입하여 코드를 테스트 할 수 있도록하는 것입니다.
대신에
public Foo() {
}
public void doSomething() {
final File file = new File("XXX" + (new Random().next()) + ".txt");
file.createNewFile();
}
사용하다
private File baseDirectory;
public Foo() {
this(new File("."));
}
public Foo(File baseDirectory) {
this.baseDirectory = baseDirectory;
}
public void doSomething() {
final File file = new File(baseDirectory, "XXX" + (new Random().next()) + ".txt");
file.createNewFile();
}
이제 테스트는 임시 빈 디렉터리를 만들고 생성자에 전달하고 메서드를 호출하고 파일을 확인하고 테스트 후에 삭제할 수 있습니다.
이것은 아마도 여러분이 원하는 기능 일 것입니다. 항상 현재 디렉토리에 쓰는 것은 나에게 좋은 생각이 아닌 것 같기 때문입니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다