'ImporterService'클래스를 테스트하기위한 테스트 클래스를 작성하고 있습니다. 이 서비스는 InputStream을 읽고 데이터에서 Object를 만듭니다. Object (이 경우 Builder 클래스)는 'ImporterService'클래스에서 인스턴스화됩니다. 'ImporterService'클래스를 테스트하려면 Builder 클래스에서 호출을 확인해야한다. 이를 위해 Mocking 프레임 워크를 사용하고 싶지만 'ImporterService'외부에서 'Builder'객체의 모의 인스턴스를 만드는 것이 어떻게 가능합니까? 나는 시험의 설정에 오버라이드 (override) 할 수있는 보호 방법에 빌더 클래스의 생성을 이동에 대해 생각했다내부 인스턴스 개체를 조롱
public Builder importFrom(BufferedReader reader) throws IOException {
String someValue = readFrom(reader);
Builder builder = new Builder(); // I need to mock this Builder object...
builder.someMethod(someValue); // to see of a method is called with the expected value
}
: 같은
내 'ImporterService'클래스의 방법이 보인다. 그러나이 솔루션은 'ImporterService'클래스가 일부 내부 로직을 유출하고 있으며 내가 원하지 않는 다른 클래스에 의해 메소드를 재정의 할 수있게 해 주므로 나에게 좋지 않은 것처럼 보입니다.
: 당신이 다음을 수행 단위 테스트에서
: 여기
은 당신이 이것을 달성 할 수있는 방법을 보여주는 EasyMock를 사용하는 예입니다 귀하의 단위 테스트에서 다른 봄 프레임 워크 또는 다른 DI 프레임 워크. 배선을 테스트하지 않는 한 –