【发布时间】:2012-08-19 05:45:35
【问题描述】:
我目前正在一个业余项目上尝试测试驱动开发的过程,虽然我确实理解这个概念(先编写单元测试,观察它失败,让它工作,重构你的代码)我仍然有一些问题.
我正在进行的项目是 Python 中的 MUD 客户端。现在我正忙于实现 telnet 协议。 (我知道 Python 中已经有一个 telnetlib 或者 Twisted 中已经有一个实现,但这不是重点)
现在我有一个 TelnetHandler 类,它实现 Telnet 协议(或至少部分协议)和各种单元测试。 因为它们相当大,所以它们在 pastebin 上:TelnetHandler 和 unit tests
我现在的问题如下:
- 很多测试相互依赖:例如,如果
test_handle_read测试失败,那么很多其他测试也会失败。 - 在
TelnetOptionsTests中,我添加了我的类应该调用的方法,以检查它们是否被调用(各种local_option_enabled方法)。现在,我的课堂上没有这些方法。我应该添加单元测试来检查它们的存在吗? - 当我开始编写测试时,我将
handle_read方法更改为也解析 telnet 命令。之后,一旦我完成了测试,我将handle_read拆分为各种_handle_do、_handle_dont等...但是我没有针对这些的单元测试,因为它们正在原始handle_read中进行测试.这是正确的方法,还是在将方法拆分为不同方法时编写单元测试也是一种好习惯?
基本上,我要问的是各种可以帮助我提高单元测试技能的提示和指针。
谢谢!
【问题讨论】:
-
UnitTests 的全部意义在于将被测系统的范围缩小到可以单独测试的小子集。
标签: python unit-testing tdd