fre*_*low 11 agile refactoring unit-testing
这最近让我疯了......
什么是重构?
代码重构是重构现有计算机代码的过程- 改变因子 - 不改变其外部行为.
我们如何确保在重构过程中不会破坏任何东西?
在重构一段代码之前,需要一组可靠的自动单元测试.测试用于证明在重构之前模块的行为是正确的.
好的.但是,如果我在单元测试中发现代码味道,我该如何处理?说,一个做太多的测试方法?在重构单元测试时,如何确保不破坏任何内容?
我需要某种元测试吗?是单位测试一直下来吗?
或者单元测试不遵守正常的重构规则?
尊重这是一篇较老的帖子,在我的帖子评论中引用了TDD的实践.经过审核,我想投入两美分.
主要是因为我觉得接受的答案是滑稽的说法:
每次修改测试时,它都变得不那么值得信赖.
我对" 修改"这个词有疑问.关于重构诸如改变之类的单词,修改等通常会被避免,因为它们会带来与重构相反的含义.
如果您修改传统意义上的测试,则存在引入更改的风险,这使得测试不那么值得信赖.
但是,如果您在重构意义上修改测试,那么测试应该同样值得信赖.
这让我回到原来的问题:
我如何重构单元测试?
很简单,就像你在任何其他代码中一样 - 孤立无援.
因此,如果您想重构测试,请不要更改代码,只需更改测试即可.
我需要测试我的测试吗?
不,事实上,Kent Beck在他的Full Stack Radio采访中解决了这个问题,他说:
您的代码是测试的测试
Mark Seemann在他的回答中也注意到了这一点:
测试和生产代码相互控制,因此在保持另一个锁定的同时改变一个是最安全的.
最后,这不是关于如何重构测试,而是一般的重构.适用相同的原则,即重构重构代码而不改变其外部行为.如果不更改外部行为,则不会丢失信任.
| 归档时间: |
|
| 查看次数: |
1945 次 |
| 最近记录: |