我正在开发一个 Django 网站。我使用 Selenium 进行功能测试(从最终用户的角度来看)并进行 TDD。我还对我的所有模型进行基本的单元测试。
我通常会编写一个新的功能 Selenium 测试(例如,用于提交表单并检查是否存在更新),然后编写一些代码以使测试通过。我创建了一个视图、一些表单、模型方法、模板等。毕竟,测试通过了,我继续进行下一个 Selenium 测试。
问题是这种方法感觉并不完全正确。也许我也应该写更多的单元测试,所以这里有一些问题:
- 如果功能测试似乎可以完成任务,为什么我需要单元测试?请注意,我的 Selenium 测试是完全自动化的,并通过 Jenkins CI 进行管理,因此管理许多功能测试并在每次提交后运行它们是没有问题的。
- 我应该对应用程序的哪些部分进行单元测试?
PS Harry Percival 写的用 Python 进行测试驱动开发(可免费在线获得)建议您使用以下工作流程: