Использование JMock . JMock позволяет вам проверять поведение, а не изменения состояния. Чтобы сделать это, вам нужно инкапсулировать метод SOAPCOnnectionFactory.newInstance () в объекте, из которого состоит:
public class MySOAPConnectionFactory {
public SOAPConnectionFactory getConnection() {
return SOAPConnectionFactory.newInstance();
}
Используйте объект нового класса в вашем коде.
conn = mySOAPConnectionFactory.getConnection();
conn.call( message, endpoint );
Затем, в вашем тесте, замените объект Mock на Factory, который вернет Mock Connection. Установите ожидания для Mock Connection, ожидая вызова, который вы ищете.
final SOAPConnectionFactory mockConnection = mockery.mock(SOAPConnectionFactory.class);
final SOAPConnection mockSoapConnection = mockery.mock(SOAPConnection.class);
foo.setMySOAPConnectionFactory( mockConnectionFactory );
try {
mockery.checking( new Expectations() {
{
atLeast( 1 ).of( mockConnectionFactory ).getConnection();
will( returnValue( mockSoapConnection ) );
atLeast( 1 ).of( mockConnection ).call(SOME_MESSAGE, ENDPOINT);
}
} );