1

Web サービス要求を行う単体テストを実行しようとして行き詰まりました。EasyMock を使用して JUnit テストで jax-ws リクエストのプロキシ オブジェクトをモックしています。

次のように、アプリケーションコンテキストで DI を使用して Bean を定義しました。

<bean id="mockOrderPort" name="mockOrderPort" class="org.easymock.EasyMock" factory-method="createStrictMock" >
    <constructor-arg value="com.proyecti.perama.siman.replica.integration.schema.OrderPort" />
</bean>

これは失敗しているテスト ケースです。

//II. Fill the authentication response will be used to mock the server calling
final AuthenticationResponse authenticationResponse = new AuthenticationResponse();
authenticationResponse.setToken(encode(TestConstants.EMPTY_TOKEN));

//III. When authentication is called, mock must return the authentication request object created earlier
expect(mockOrderPort.authentication(EasyMock.anyObject(AuthenticationRequest.class))).andReturn(authenticationResponse);

//IV. Make the mock object available for executing the test
replay(mockOrderPort);

//V. Execute the test (call to server is produced inside this method)
executeTest();

//VI. Verify mock behaviour is correct
verify(mockOrderPort);

executeTest メソッド内には、モック化されたプロキシ オブジェクトを使用した WS への呼び出しがあります。

authenticationResponse = portToServer.authentication(authenticationRequest);

何を試しても、常に実際の WS に接続しようとし、次の例外が発生します。

authentication request has not been successful. Exception: com.sun.xml.ws.client.ClientTransportException: HTTP Transport error: java.net.ConnectException: Connection refused: connect

作成したオブジェクトを返す代わりに、モック オブジェクトが接続しようとするのはなぜですか?

ありがとう!

4

0 に答える 0