我目前正在一个爱好项目上尝试测试驱动开发的过程,虽然我确实理解这个概念(首先编写你的单元测试,观察它失败,让它工作,重构你的代码)我仍然有一些问题。
我正在从事的项目是 Python 中的 MUD 客户端。现在我正忙于实现 telnet 协议。(我知道 Python 中已经有一个 telnetlib 或 Twisted 中的实现,但这不是重点)
现在我有一个 TelnetHandler 类,它实现了 Telnet 协议(或至少它的一部分)和各种单元测试。因为它们相当大,所以它们在 pastebin 上:TelnetHandler和单元测试
我现在的问题如下:
- 许多测试相互依赖:例如,如果
test_handle_read
测试失败,那么许多其他测试也会失败。 - 在
TelnetOptionsTests
我添加了我的类应该调用的方法以检查它们是否被调用(各种local_option_enabled
方法)。现在,我的课堂上没有这些方法。我应该添加单元测试只是为了检查它们的存在吗? - 当我开始编写测试时,我将
handle_read
方法更改为也解析 telnet 命令。之后,一旦我完成了我的测试,我就将它们分成了handle_read
各种_handle_do
,_handle_dont
等等handle_read
... 这是正确的方法,还是在将方法拆分为不同方法时编写单元测试也是一种好习惯?
基本上,我要问的是各种可以帮助我提高单元测试技能的提示和指针。
谢谢!