tdd的第一步

2024-10-04 05:22:03 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

现在我有一个类TelnetHandler,它实现Telnet协议(或者至少是它的一部分)和各种单元测试。 因为它们相当大,它们在pastebin上:TelnetHandler和{a2}

我现在的问题是:

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

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

谢谢你!在


Tags: 项目方法代码概念协议客户端read过程
1条回答
网友
1楼 · 发布于 2024-10-04 05:22:03

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?

要看情况而定。当您拆分时,您是拆分为不同的公共方法,还是它们是处理实现的私有方法。在

相关问题 更多 >