gpt4 book ai didi

php - 如何在不是很 "Testy"的环境中使用 TDD

转载 作者:可可西里 更新时间:2023-11-01 06:31:27 26 4
gpt4 key购买 nike

我在一家公司工作,OOP 是......好吧,不是被禁止,但至少因为“太复杂”而不受欢迎。我的同事写了很多 100 多行的函数,它们通常都在“funcs.inc.php”或“something.inc.php”中,如果他们使用任何函数,通常他们不会,因为复制粘贴是更快。

我很乐意至少在我编写的代码中开始使用 TDD,但由于我必须与他们的代码交互,所以我不知道如何开始。

这不是遗留代码,因为他们正在积极开发它,我不想修改他们的代码,因为我不想引发冲突。

除了更换公司之外,您建议采用哪种方法?

最佳答案

我一直处于那个位置,都处于实际 TDD 之外。我通常做的是尽可能为其他人的接口(interface)编写测试。然后,在我运行我的代码之前,我知道他们是否做了人们做的许多常见事情之一:

  1. 通过重命名或完全删除某些内容来破坏 API
  2. 通过未引起注意的细微类型更改破坏了 API
  3. 未经测试就推出了有毒的修订版
  4. 出现内存泄漏(我的测试套件可识别 Valgrind)
  5. 阻止他们以前从未阻止过的地方

任何这些失败通常都会让我说“嘿,你能检查一下(模块)吗,我认为它在上次修订中坏了”

这只会变得丑陋一次。其他人对我为他们的代码编写测试感到非常不高兴,并坚持认为我不适合他们的工作。我无法让对方明白我只是为了让我的工作更轻松。

直接说“看,我花在调试你的代码上的时间比我自己工作的时间还多”绝不是一个好主意,除非你绝对必须这样做(即你的老板正在询问你的表现)。大多数时候,如果你只是把测试发给人们,他们会很乐意接受。如果您已经对这个想法遇到阻力,请尽量不要冒犯任何人或显得居高临下。

模拟函数/ stub 没问题,但如果不运行真正的测试,整个程序仍有可能崩溃。至少,当发生这种情况时,您可以快速排除您的东西并(可能)指出问题所在。

关于php - 如何在不是很 "Testy"的环境中使用 TDD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2516164/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com