2012-03-06 16 views
0

メソッドを呼び出すと例外をスローするように、クラスをモックしたいと思います。私はこれをやりたい理由は、私はテストでNullpointerExceptionを望んでいない、私はむしろすべてのオブジェクトを模倣し、例外のものでnullのインスタンス変数として宣言したいので、その上のメソッド私は適切な例外を得ると呼ばれ、私はimediatly何が間違って見る。 EasyMock 3.0はそのようなことを提供していますか、それとも他の方法でやる必要がありますか?EasyMock 3.0 Mockedクラスは、メソッドが呼び出されると例外をスローする必要があります。

ありがとうございます。

答えて

0

EasyMockのデフォルトの動作ではありませんか?模擬オブジェクトの予期しない呼び出しは、EasyMock.verify(mocks)に電話をかけた後で例外につながります。 EasyMockのドキュメントを参照してください - 「ナイスモック」セクションでは、この説明:

@Test 
public void testFoo() { 
    List list = EasyMock.createMock(List.class); 

    EasyMock.replay(list); 

    list.size(); 

    EasyMock.verify(list); 
} 
+0

私の例では、誰かが間違って宣言したり削除したりしていなかったので、リストはnullになります(@Beforeなど)! そして、私はこのオブジェクトを別のクラスに設定しています。それを使用するので、そこにはNullpointerがあります。私はそれを防ぐために、より良い例外をスローしたいと思います。問題が何であるか把握するのがはるかに迅速です。テストを実行する前にそれを確認することは、すべてのテストが以前に作成されたすべてのオブジェクトを使用するわけではないので、私が望むものではありません!ありがとう! – user1251628

0

あなたが期待することができます:http://easymock.org/EasyMock3_0_Documentation.html次のテストは、AssertionErrorと私のために失敗し

、これはあなたが探しているものでなければなりません

List list = EasyMock.createMock(List.class); 
EasyMock.expect(list.size()).andThrow(new OurOwnException()).anyTimes(); 
EasyMock.replay(list); 

これは、size()メソッドが呼び出されるたびに常にカスタム例外をスローします。 この現象は予期していますか?

関連する問題