我在一家OOP工作的公司工作……好吧,不要费力,但至少不赞成“过于复杂”.我的同事写了很多100行函数,它们通常都在“funcs.inc.PHP”或“something.inc.PHP”中,如果它们完全使用任何函数,通常它们不会因为复制粘贴更快.
我想开始使用TDD至少我写的代码,但因为我必须与他们的代码接口,我不知道如何开始.
这不是遗留代码,因为他们正在积极开发它,我不想修改他们的代码,因为我不想引发冲突.
除了更换公司外,您会建议采用哪种方法?
我一直处于这个位置,两者都是在实际的TDD中.我通常做的就是尽可能为其他人的界面编写测试.在我运行代码之前,我知道如果他们做了人们做的许多常见事情之一:
原文链接:https://www.f2er.com/php/139053.html>通过重新命名或完全废除某些东西来破解API
>使用未被注意的细微类型更改来破解API
>在没有测试的情况下推出了有毒的修订版
>弹性内存泄漏(我的测试套件是Valgrind意识到的)
>阻止他们以前从未阻止的地方
任何失败通常会导致我说“嘿,你能检查(模块),我认为它在最后一次修订中破了”
这只丑陋一次.其他人真的很不高兴我正在为他们的代码编写测试,并坚持认为我是出于他们的工作.我无法让这个人明白我只是出去让我的工作变得更轻松.
直接说出“看,我花更多的时间来调试你的代码而不是自己动手”绝对不是一个好主意,除非你绝对必须(即你的老板询问你的表现).大多数情况下,如果您只是向人们发送测试,他们很乐意拥有它们.如果你已经遇到了这个想法的阻力,试着不要冒犯任何人或者看起来居高临下.
模拟函数/存根是可以的,但剩下的是如果没有运行真正的测试,整个程序仍然可能会中断.至少,当发生这种情况时,你可以快速排除你的东西,并(可能)指出问题所在.