2016-12-23 6 views
-3

easymockを使用してリクエストとレスポンスを嘲笑しましたが、依然としてリクエストメソッドの各行を通過して例外が発生しています。モックされたメソッドはまだ実際のメソッドを呼び出します

例:

public class helper{ 

public String getCB(){ 
    Response response = serviceImpl.getDefaultMethod(request); 
    return response.getString(); 
} 

テスト:

expect(MockServiceImpl.getDefaultMethod(mockRequest)).andReturn(mockResponse); 

は、そのがgetDefaultMethod()の内側に行く、例外を取得します。

私はその方法でコードを調べる理由を理解していません。誰でも助けてくれますか?

+1

生産コードとテストの両方に[MCVE](http://stackoverflow.com/help/mcve)を追加してください。 –

答えて

0

AFAIK easymockは静的メソッド呼び出しをモックできません。

あなたはライン方法とモックrequestのうち

Response response = ServiceImpl.getDefaultMethod(request); 

を移動する必要があります。

もう1つのアプローチは、PowerMockを使用することでしたが、IMHOは悪い設計に譲歩しました。

+0

getDefaultMethodは静的ではありません – user2514421

+0

* "getDefaultMethodは静的ではありません" *ただし、静的アクセスを使用しています(編集前およびテスト例ではまだ) –

0

このメソッドがstaticではなくfinalである場合は、正常に動作するはずです。

もしそうでなければ、このメソッドはモック上ではなくクラスの実際のインスタンス上で呼び出すことを意味します。私たちにモックの作成と注入を示すことは、それを確認するのに役立ちます。

関連する問題