使用PowerMock或你让你的测试对你的设计有多大影响?[已关闭]
多年来,我一直是EasyMock的粉丝,多亏了SO,我遇到了对PowerMock的引用,以及它能够模拟构造函数和静态方法的能力,这两者在将测试改造为遗留代码库时都会引起问题。
显然,单元测试(和TDD)的一个巨大好处是它导致(强制?)更干净的设计的方式,在我看来,PowerMock的引入可能会减损这一点。我认为这主要表现为:
- 回到初始化协作者而不是注入他们
- 使用静态,而不是让方法归协作者所有
除此之外,关于我的代码被为测试操作的字节码,有些事情并不完全适合我。我无法给出具体的理由,只是这让我感到有点不安,因为它只是为了测试而不是生产。
在我目前的演出中,我们真的在推动单元测试,作为人们改进编码实践的一种方式,感觉就像在等式中引入PowerMock可能会让人们跳过这一步,所以我不愿意开始使用它。话虽如此,我真的可以看到使用它可以减少开始测试类所需的重构量。
我想我的问题是,人们使用PowerMock(或任何其他类似的库)来获得这些功能的体验是什么,你会利用它们吗?你希望你的测试在多大程度上影响你的设计?