1

EasyMocks を使用しています。
メソッド内には、作成された新しいオブジェクトがあります。そして、そのオブジェクトに対して、マップを返すメソッドが呼び出されます。以下のように

test(){
   Fun f= new Fun();
    Map m =f.getaMap();
}

その時にカスタムマップを返したい。どうすればいいのですか。
ありがとう。

4

1 に答える 1

2

私はあなたのコードから、あなたがテストし、それが生成するものFunを見ているテストメソッドを私たちに与えたと推測しています。MapFun

forMapFactoryを作成するDependency inject a 。EasyMock の構文についてはよくわからないので、ここにモック オブジェクトを示します。これには、マップを作成するためのメソッドがあります。そのメソッドをモックしてマップを生成し、 を使用する代わりにクラス内でメソッドを呼び出します。MapFunmockMapFactorynew

test() {

    Fun f= new Fun(mockMapFactory);
    Map m =f.getaMap();
}

Factory デザイン パターンを見てみましょう。これは、newオブジェクト (および必要に応じてオブジェクト自体) の作成をモックできるように、呼び出しを回避できる非常に優れた方法です。また、作成するオブジェクトの種類をクラスが決定する責任を負わないことも意味します。

ファクトリをテストするときに、ファクトリ内でマップの作成をモックすることはできません。それで大丈夫です。検査によってテストするか、正しい種類のオブジェクトを取得していることを確認してください。

于 2011-01-13T21:08:02.723 に答える