我正在使用依赖注入为我的课程以外的代码提供模拟测试。我发现自己一遍又一遍地写了很多相同的代码,因为我需要模拟AuthProvider,ConfigurationManager等等,这些都在我想测试的方法中使用。该方法包含分支(if-then-else),因此我有多个测试来测试该方法的所有执行路径。我正在多次实例化每个模拟(每种测试方法都有一次),但是想知道这是否是错误的方法? 此外,我对嘲笑和预设响应显然主要是复制粘贴,因为对每个方法调用AuthProvider.Authenticate()这样的调用如何避免在单元测试中使用模拟代码时出现重复代码
在每种方法中,我设置了一个模拟存储库,并在每个方法的结尾我验证模拟库。我应该建立一些工厂来创造这些模拟,并设定他们的期望和回报价值,如果是这样的话?
为了实现mock我使用RhinoMocks。
“如果您不对模拟调用设置期望值,则像EasyMock这样的记录和重放框架会失败。” =>这是不正确的。包括EasyMock在内的所有模拟工具都允许开发人员具有“非严格”的期望。在EasyMock中,通过使用“createNiceMock()”方法创建一个“很好”的模拟来实现。 – 2009-08-12 21:58:16