Поскольку вы используете mockito, попробуйте следующее:
1) Измените метод load
, чтобы thirdPartyResponse
был вызовом защищенного метода:
public ThirdPartyResponse load(ThirdPartyRequestContext context) {
ThirdPartyResponse thirdPartyResponse = createThirdPartyResponse();
2) Поместите создание этого объекта в createThirdPartyResponse()
:
protected ThirdPartyResponse createThirdPartyResponse(){
return new ThirdPartyResponse();
}
3) Шпионите за SUT и смейтесь над методом createThirdPartyResponse
:
public class ClassUnderTest{
@Spy
ClassUnderTest classUnderTestSpy;
@Spy
ThirdPartyResponse thirdPartyResponseSpy;
@BeforeClass
public void init(){
MockitoAnnotations.initMocks(this);
}
public void expectExceptionOnLoad(){
// Arrange
Mockito.doThrow(new Exception()).when(thirdPartyResponseMock.setData(Mockito.any(Object.class));
Mockito.doReturn(thirdPartyResponseSpy).when(classUnderTestSpy).createThirdPartyResponse();
// Act
classUnderTestSpy.load(context);
// Assert
assertNotNull(thirdPartyResponseSpy.getErrorMessage());
}
}
PS.вам нужно заменить Mockito.any(Object.class)
на соответствующий класс