cwa*_*ash 15 maintainability unit-testing dry fixtures factory-pattern
这似乎引发了另一个问题的一些对话,我认为值得转入自己的问题.
DRY原则似乎是我们解决维护问题的首选武器,但是测试代码的维护又如何呢?是否适用相同的经验法则?
开发人员测试社区中的一些强烈声音认为设置和拆卸是有害的,应该避免......仅举几例:
实际上,由于这个原因,xUnit.net已经完全从框架中删除了它们(虽然有办法解决这种自我限制).
你有什么经验吗?设置/拆卸是否会受损或有助于测试可维护性?
更新:像JUnit4或TestNG(@ BeforeClass,@ BeforeGroups等)中提供的更细粒度的构造会有所作为吗?
设置和拆卸方法的大多数(如果不是全部)有效用途可以写为工厂方法,允许DRY而不会遇到似乎受设置/拆卸范例困扰的问题.
如果您正在实施拆解,通常这意味着您不是在进行单元测试,而是进行集成测试.很多人用这个作为没有拆卸的理由,但是IMO应该有集成和单元测试.我个人会将它们分成不同的程序集,但我认为一个好的测试框架应该能够支持这两种类型的测试.并非所有良好的测试都是单元测试.
但是,通过设置,在实际运行测试之前,为什么需要执行操作似乎有很多原因.例如,构造对象状态以准备测试(例如设置依赖注入框架).这是设置的正当理由,但可以像工厂一样轻松完成.
此外,类和方法级别设置/拆卸之间存在区别.在考虑您要做的事情时,需要牢记这一点.
我使用setup/teardown范例时遇到的最大问题是我的测试并不总是遵循相同的模式.这使我开始使用工厂模式,这使我可以同时具有DRY,同时具有可读性,而不会让其他开发人员感到困惑.走工厂路线,我已经能够拿到我的蛋糕然后吃了.
| 归档时间: |
|
| 查看次数: |
4040 次 |
| 最近记录: |