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 回答