gpt4 book ai didi

python - TDD实践: Distinguishing between genuine failures and unimplemented features

转载 作者:行者123 更新时间:2023-11-28 20:51:59 29 4
gpt4 key购买 nike

如果您正处于 TDD 迭代的中间,您如何知道哪些测试失败是因为现有代码确实不正确,哪些失败是因为测试本身或功能尚未实现?请不要说,“你只是不在乎,因为你必须同时解决这两个问题。”我已经准备好摆脱这种心态。

我编写测试的一般做法如下:

  • 首先,我构建了测试套件的整体或部分总体结构。那就是——我只检查并写下测试的名称,提醒我要实现的功能。我通常(至少在 python 中)只是从只有一行的每个测试开始:self.fail()。通过这种方式,我可以通过列出我认为要测试的每个功能来驾驭意识流——比如,一次测试 11 个。

  • 其次,我选择一个测试并实际编写测试逻辑。

  • 第三,我运行测试运行程序并看到 11 个失败 - 10 个只是 self.fail() 和 1 个是真正的 AssertionError。

  • 第四,我编写使我的测试通过的代码。

  • 第五,我运行测试运行程序,看到 1 次通过和 10 次失败。

  • 第六,我转到第 2 步。

理想情况下,我希望有第四种可能性:NotImplemented,而不是通过、失败和异常来看待测试。

此处的最佳做法是什么?

最佳答案

许多 TDD 工具都有 PENDING 测试与 FAILING 测试的概念。我认为 unittest2 也做出了这种区分。

(我认为你如何做到这一点是写:

def test_this_thing(self):
pass

...不过这是凭内存...

[编辑:在 2.7 的单元测试或单元测试 2 中,您可以使用 @skip@unittest.expectedFailure 装饰器标记测试。 See the documentation on this

关于python - TDD实践: Distinguishing between genuine failures and unimplemented features,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8017514/

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