특정 프레임 워크에 대해서는 잘 모르겠지만 OOP 측면에서 일반적인 접근 방식은 파일 액세스 코드 (인터페이스가 풍부합니다!) 위에 추상화 된 레이어를 작성하고 일반적인 작업을 쉽게 사용할 수있는 파사드를 작성하는 것입니다. 그런 다음 현재 테스트중인 코드 아래에있는 한 레이어를 조롱 한 다음 기본적으로 가짜 파일 시스템입니다 (또는 테스트중인 코드는 그렇지 않으면 알 수 없습니다).
이를 처리하기 위해 종속성 주입 프레임 워크를 사용하는 경우 인터페이스의 가짜 구현을 위해 구성 요소를 쉽게 전환 할 수 있습니다. 제어 반전의 패턴을 따르고 테스트중인 클래스의 생성자에 종속성을 전달하면 테스트를 쉽게 수행 할 수 있습니다.
public interface IFileSystem {
IFileHandle Load(string path);
}
public class ClassBeingTested {
public ClassBeingTested(IFileSystem fileSystem) {
}
public void DoSomethingWithFileSystem() {
}
}
나는 내 자바가 정확하기를 바랍니다. 나는 오랫동안 자바를 작성하지 않았지만, 당신은 드리프트를 얻을 것입니다. 바라건대 나는 여기서 문제를 과소 평가하지 않고 지나치게 단순합니다!
물론 이것은 당신이 진정한 단위 테스트, 즉 전체 시스템이 아니라 가능한 가장 작은 코드 단위를 테스트한다는 것을 가정하고 있습니다. 통합 테스트를 위해서는 다른 접근 방식이 필요합니다.