有没有办法使用EasyMock产生所有期望?

时间:2013-01-24 16:01:55

标签: java junit easymock

我正在尝试为一些代码写一个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个这样的期望。

有没有办法产生代码的期望或动态生成它们?所以我不必手动完成所有这些工作来测试我的特定代码?

2 个答案:

答案 0 :(得分:1)

没有

说真的,你期望它做什么?

通过查看多个测试中的期望模式,并将这些模式与可重用方法或“@Before”方法相结合,您可以长期节省一些劳动力。

答案 1 :(得分:1)

实际上,这是代码气味:Hard-to-Test Code。您的对象可能无法满足Single Responsibility Principle (SRP)

您可以尝试从一个或多个allowXYcreateMockedXY辅助方法中提取一些期望(例如void allowDownloadDocument(path, name, etc)Document createMockedDocument(...))。 Eliminating static helper classes也可能有所帮助。