EasyMockのandReturnメソッドを使用して同じ値を返すかどうかをチェックします。残念ながら、"java.lang.IllegalStateException
:前のメソッドコールの動作定義がありません: "EasyMockを使用すると、EasyMockでテストすることができないと思いますが、メソッドを試してみると良いでしょう。easyMockで静的関数をテストすることは可能ですか?
よろしく アルパース
Menu menu = EasyMock.createMock(Menu.class)
menu.setName("name");
EasyMock.expect(XmlParseUtility.createLinesToParse(menu).toString()).andReturn(angularLines.toString());
エラーメッセージ:
java.lang.IllegalStateException: missing behavior definition for the preceding method call:
Menu.getName()
Usage is: expect(a.foo()).andXXX()
これは誤りではありません。 EasyMockはあなたがそれについて話していないメソッド呼び出しを検出しました。どのように動作するので、それが起こると例外が発生します。 2つの解決方法があります。1.呼び出されると予想されるすべてのメソッドをライブラリに伝えます。 2.予期しないメソッド呼び出しを可能にする模擬ライブラリに切り替えます。 –
"EasyMock.expect(menu.getName())。equals(" name ");"を意味する場合、私はすでにそれを行いました。ライブラリProkhorovを嘲笑することに切り替えるとどういう意味ですか?あなたは私に例を挙げることができますか? – user2307786
私は別の模倣ライブラリがすべてであることを意味しました。たとえば、MockitoやSpockなどです。 EasyMockは "厳密な"模倣ライブラリであり、模擬テストで呼び出されるすべてのメソッドを提供します。これは、あなたがテストしようとしなかった無意味なものでテストを希釈するかもしれません(実際の効果は場合によって変更されますが、時にはこの厳密性が必要な場合もあります)。 Mockitoは "寛大な"模倣ライブラリであり、予期しないメソッド呼び出しを無視します。 –