FileWriter
을 사용하여 파일을 만들지 만 파일이 실제로 존재하지 않는 방법에 대해 JUnit
테스트 사례를 작성하고 있습니다. 나는 실제 파일을 만들지 않고 File
Object를 조롱하기 위해 PowerMockito
을 사용하고있다. 내 테스트는 통과하지만 프로젝트의 컨텍스트 루트에 Mock for file,hashCode
이라는 이름의 파일을 만듭니다. 이 파일을 만드는 것을 피할 수있는 방법이 있습니까? 비슷한 질문이 있지만 왜 그런 일이 일어나는지 명확하지 않습니다. 따라서 디버깅하는 동안 코드가 new FileWriter
에 도달하면 파일이 만들어졌습니다.Mockito 및 PowerMockito를 사용하여 파일 조롱
감사합니다,
JUnit 테스트 : 테스트중인
@Test
public void testCreateCSVFile() throws Exception {
File mockFile = Mockito.mock(File.class);
PowerMockito.whenNew(File.class).withAnyArguments().thenReturn(mockFile);
rest of the test...
}
방법 : 당신은 잘못된 필드를 조롱하는
public void createCSVFile(List<IUiIntegrationDto> intgList, String fileName) throws Exception {
FileWriter fileWriter = new FileWriter(fileName);
rest of the code...
}
이름이 아닌 메서드에 작성기를 전달하십시오. – chrylis
효과가있었습니다. 이름 대신 FileWriter를 전달하고 있는데 더 이상 파일을 만들지 않습니다. 감사. – Jaykumar
단지 레코드 용입니다. 테스트중인 클래스에 종속성 삽입을 사용하여 ** 파일 작성기 개체를 ** 제공하는 경우 PowerMock으로 변경할 필요가 없습니다. 테스트 가능한 코드 작성의 핵심은 프로덕션 코드에서 ** new ** 문을 사용하는 데주의해야한다는 것입니다 (자세한 내용은 https://www.youtube.com/playlist?list=PLD0011D00849E1B79 참조). – GhostCat