같은 클래스의 다른 메소드를 호출하는 메소드를 테스트하고 싶습니다. 기본적으로 데이터베이스에 몇 가지 기본값이 있기 때문에 기본적으로 같은 방법이지만 인수가 적습니다. 내가 방법 getPriceForOne를 불렀다 그래서 만약 내가 테스트를 원하는이mockito에 의해 같은 클래스의 다른 메소드로부터 메소드가 호출되었는지 확인하는 방법
public class A{
Integer quantity;
Integer price;
A(Integer q, Integer v){
this quantity = q;
this.price = p;
}
public Float getPriceForOne(){
return price/quantity;
}
public Float getPrice(int quantity){
return getPriceForOne()*quantity;
}
}
에 표시() 메소드 getPrice (int)를 호출 할 때. 기본적으로 일반 메소드 getPrice (int) 및 모의 getPriceForOne을 호출하십시오.
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
....
public class MyTests {
A mockedA = createMockA();
@Test
public void getPriceTest(){
A a = new A(3,15);
... test logic of method without mock ...
mockedA.getPrice(2);
verify(mockedA, times(1)).getPriceForOne();
}
}
나는 훨씬 더 복잡한 파일을 다른 사람을위한 유틸리티라고 생각하고 모두 하나의 파일에 있어야합니다.
당신이 원하는 것은 부분적인 조롱하지만 권장되지 않습니다. 유틸리티 클래스 인 경우 각 메소드를 완전히 테스트하는 것이 좋습니다. 그렇지 않은 경우, 즉 복잡한 처리가 필요하면 대신 컴포지션을 사용하여 코드를 디자인 할 수 있습니다. – Brice