【发布时间】:2009-10-21 16:14:31
【问题描述】:
模拟框架,例如EasyMock,使插入虚拟依赖项更容易。话虽如此,使用它们来确保如何调用特定组件上的不同方法(以及以什么顺序)对我来说似乎很糟糕。它将行为暴露给测试类,这使得维护生产代码变得更加困难。而且我真的没有看到好处;在精神上,我觉得我被束缚在一个沉重的球上。
我更喜欢只针对接口进行测试,将测试数据作为输入并断言结果。更好的是,使用一些自动生成测试数据的测试工具来验证给定的属性。例如将一个元素添加到列表中,然后立即删除它会产生相同的列表。
在我们的工作场所,我们使用提供测试覆盖率的 Hudson。不幸的是,它很容易让人盲目地痴迷于一切都经过测试。我强烈认为,如果一个人也想在维护模式下保持生产力,就不应该测试所有东西。一个很好的例子是 Web 框架中的控制器。通常它们应该包含很少的逻辑,在我看来,使用控制器以特定顺序调用某某方法的模拟框架进行测试是荒谬的。
尊敬的 SOers,您对此有何看法?
【问题讨论】:
标签: frameworks mocking easymock