2012-04-21 6 views
1

JMock에서 클래스를 조롱하여 메소드를 테스트하는 코드를 작성하려고하는데,이 메소드는 내부적으로 세 가지 메소드 중 하나를 호출합니다 (그 중 하나는 개인 메소드입니다). 나는 세 가지 내부 방법 모두에 기대를 걸었다. 그런 다음 테스트중인 메서드를 호출합니다. 테스트 케이스는 개인 메소드가 호출되고 호출되지 않았을 것이라고 예상하지 못합니다. 두 가지 내부 메소드 (기본 액세스 지정자 포함)가 성공적으로 조롱되었지만 개인 메소드가 조롱되지 않았고 실제로 컨트롤이 문제를 일으키는 실제 개인 메소드 내부에 도달한다는 사실이 발생합니다. 개인 메서드의 액세스 지정자를 기본 액세스로 변경하면 모든 것이 제대로 작동하지만 그렇게하고 싶지는 않습니다. 누군가이 문제를 설명하고이 문제를 해결하는 방법을 알려 줄 수 있습니까?JMock이 개인 메소드를 모의 할 수 없습니다.

+0

개인적인 방법으로 모의하고 싶다는 뜻입니까? –

+0

메소드에 비즈니스 로직이 있었지만 이제는 JMock과 작동하도록 액세스 지정자를 변경했습니다 – Gaurav

+0

로직을 실행할 수있게하는 데 어떤 해가 될까요? 누구든지 내가 생각하는 주제의 일부를 조롱하려고 할 때 서로에게서 벗어나기 위해 두 가지 (또는 그 이상)의 클래스를 가지고 있다는 것입니다. –

답변

0

Jmockit도 사용할 수 있습니다. 이 사용 사례를 위해 사용할 수있는 훌륭한 라이브러리입니다. 당신이 사용할 수있는 키워드 : "Deencapsulation".

관련 문제