1

私は、EasyMock Junitテストケースを作成しようとしています。このテストケースには、Mockに少しやり過ぎだと感じている、余分なビットやコードがたくさん含まれています。与えられた例について言うhttp://java.dzone.com/articles/easymock-tutorial-%E2%80%93-getting

次の期待はテストするように設定されています

portfolio.getTotalValue()

期待

EasyMock.expect(marketMock.getPrice("EBAY")).andReturn(42.00);
EasyMock.replay(marketMock);

今私の場合、ユニットテストのコードにたどり着く前に設定する必要があるような期待が約30〜40あります。

コードの期待値を生成する方法、またはそれらを動的に生成する方法はありますか?特定のコードをテストするためにこれらすべてを手動で行う必要がないようにするには?

4

2 に答える 2

1

Actually, it's a code smell: Hard-to-Test Code. Your object might not fulfill the Single Responsibility Principle (SRP).

You can try extracting out some expectations to one or more allowXY or createMockedXY helper methods (void allowDownloadDocument(path, name, etc), Document createMockedDocument(...) for example). Eliminating static helper classes also could be helpful.

于 2013-01-24T19:13:23.813 に答える
1

いいえ。

真剣に、あなたはそれが何をすることを期待しますか?

複数のテストで期待されるパターンを調べ、それらを再利用可能なメソッドまたは「@Before」メソッドに結合することで、長期的には労力を節約できます。

于 2013-01-24T16:34:54.477 に答える