클래스에서 동일한 문자열을 쓰는 다른 메서드를 호출하는 메서드가 있습니다. 같은 뭔가 : 단위 테스트 목적으로단위 테스트를 위해 Java에서 개별 메소드를 스텁하는 방법은 무엇입니까?
void foo() {
a += "xyx";
bar();
}
void bar() {
a += "abc";
}
, 내가 foo는 테스트를 별도로 바 싶다. foo()를 호출하거나 다른 메소드로 바꿀 때 bar가 실행되는 것을 막을 수있는 방법이 있습니까?
클라이언트 코드는 어떻게 생겼습니까? bar()를 재정의하는 클래스를 어떻게 인스턴스화합니까? 따라서 새 클래스를 인스턴스화하는 코드 (또는 팩토리)를 변경해야합니다. 아래에서 말했듯이 문제에 대한 자세한 내용이 필요하다고 생각합니다. 특히 소스가 변경 될 수 있습니다. –
이렇게하기로 결정했다면, 테스트는 테스트 할 클래스와 약간 다른 테스트가 될 것이라는 점에 유의하십시오. 그러면 테스트 커버리지에 구멍이 생길 수 있습니다. – NamshubWriter
@AdrianMouat 이것이 단위 테스트 인 경우 완전히 별도로 테스트 할 클래스를 만들 수 있다고 가정 할 수 있어야합니다. 그렇다면 우리는 간단하게 할 수 있어야합니다 : 새로운 Clazz() {/ * 여기에 덮어 쓰기 * /} 이것은 소스를 변경할 필요가 없음을 의미합니다 – Egwor