我正在尝试为一些代码写一个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个这样的期望。
有没有办法产生代码的期望或动态生成它们?所以我不必手动完成所有这些工作来测试我的特定代码?
答案 0 :(得分:1)
没有
说真的,你期望它做什么?
通过查看多个测试中的期望模式,并将这些模式与可重用方法或“@Before”方法相结合,您可以长期节省一些劳动力。
答案 1 :(得分:1)
实际上,这是代码气味:Hard-to-Test Code。您的对象可能无法满足Single Responsibility Principle (SRP)。
您可以尝试从一个或多个allowXY
或createMockedXY
辅助方法中提取一些期望(例如void allowDownloadDocument(path, name, etc)
,Document createMockedDocument(...)
)。 Eliminating static helper classes也可能有所帮助。