gpt4 book ai didi

tdd - 用简单的术语解释 TDD

转载 作者:行者123 更新时间:2023-12-04 16:50:38 28 4
gpt4 key购买 nike

我在浏览StackOverflow时遇到this题。这里作者提到了他/她的调试风格:

I am wondering how to do debugging. At present the steps I follow is,

  • I complete a large script,
  • Comment everything but the portion I want to check
  • Execute the script


并且在其中一个答案中,另一个用户说提问者正在以错误的方式调试:

Your sequence seems entirely backwards to me. Here's how I do it:

  1. I write a test for the functionality I want.
  2. I start writing the script, executing bits and verifying test results.
  3. I review what I'd done to document and publish.


我对编程还很陌生,我遵循第一种做事方式。好像第二种方式叫做Test-driven development,好像很 效率低下 做事的方式。

你能不能 解释以更简单的方式进行 TDD 及其优点?

最佳答案

你在这里混合了两件事。测试驱动开发和单元测试。您不必同时执行它们 - 首先编写集成测试称为 ATDD 或 BDD,在编写代码之后编写单元测试只是编写单元测试 - 但它们可以很好地协同工作。

单元测试 就是测试一小段代码(通常是单一方法,但一个单元是一个灵活的野兽)并单独测试它。采用上面我们最初的两种方法,这会将其更改为:

  • 我完成了一个 [section of a] 大脚本,
  • 我写了一个测试,只针对我认为有问题的区域
  • 执行测试

  • 这意味着您不会破坏脚本,因此不要冒险忘记取消注释。您还有一个可以再次运行的测试。这意味着您可以合理地确定新的更改不会重新启用此错误。这是一个大问题;只运行一次的测试是没有用的。测试应该是可重复的,这是破解代码部分不会给你的东西。

    测试驱动开发 就是在编写代码之前编写测试。这确实增加了大量开销,但是您认为什么时候修复错误最便宜?当您正在编写那部分代码时或几个月后?这是我使用 TDD 的主要原因。我在编写代码时会收到有关我的代码的反馈。更不用说将它发送给测试团队,等待一周让他们针对它运行一组测试,然后不得不从不同的用户故事中提取出来,试图弄清楚我一周前到底在想什么。

    它们还意味着你可以重构并合理地确定你不仅仅是把所有东西都塞满了,有助于让你思考代码的设计,充当文档和其他各种可爱的东西。但对我来说,TDD 的杀手级特性是即时反馈。

    关于tdd - 用简单的术语解释 TDD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3246106/

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