gpt4 book ai didi

python - tdd 的第一步

转载 作者:太空狗 更新时间:2023-10-30 03:05:27 24 4
gpt4 key购买 nike

我目前正在一个业余项目上尝试测试驱动开发的过程,虽然我确实理解这个概念(首先编写你的单元测试,观察它失败,让它工作,重构你的代码)我仍然有一些问题.

我正在从事的项目是 Python 中的 MUD 客户端。现在我正忙于实现 telnet 协议(protocol)。 (我知道已经有 Python 中的 telnetlib 或 Twisted 中的实现,但这不是重点)

现在我有一个 TelnetHandler 类,它实现了 Telnet 协议(protocol)(或至少它的一部分)和各种单元测试。因为它们相当大,所以它们在 pastebin 上:TelnetHandlerunit tests

我现在的问题如下:

  • 很多测试相互依赖:例如,如果 test_handle_read 测试失败,那么很多其他测试也会失败。
  • TelnetOptionsTests 中,我添加了我的类应该调用的方法,以检查它们是否被调用(各种 local_option_enabled 方法)。现在,我的课上没有这些方法。我应该添加单元测试只是为了检查它们的存在吗?
  • 当我开始编写测试时,我更改了 handle_read 方法来解析 telnet 命令。之后,完成测试后,我将 handle_read 拆分为各种 _handle_do_handle_dont 等......但我没有单位测试那些在原始 handle_read 中被测试的。这是正确的方法吗?或者当您将一个方法拆分为不同的方法时也编写单元测试是否是一种好的做法?

基本上,我要问的是可以帮助我提高单元测试技能的各种提示和指示。

谢谢!

最佳答案

A lot of tests depend on each other: for instance if the test_handle_read tests fails then a lot of other tests will fail too.

不要这样做。在每个测试开始时,将世界抛开并按照该测试运行的方式重新创建它。

When I started writing my test I changed the handle_read method to also parse telnet commands. Afterwards, once I had my tests done I split the handle_read in various _handle_do, _handle_dont, etc... But I don't have unit tests for those as they're being tested in the original handle_read. Is this the proper way, or is it good practice to write unit tests also when you split a method in different methods?

这取决于。当您拆分时,您是否拆分为不同的公共(public)方法,或者它们是处理实现的私有(private)方法。

关于python - tdd 的第一步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12096221/

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