Django表单编辑单元测试

可能已经有人开发了一种技术来缓解以下惯用单元测试的繁琐:

  1. 获取已填充表单数据的url
  2. 发布修改后的表单,并编辑一个或多个字段
  3. 检查响应(利润!)

第2步是最乏味的,在表单字段中循环。测试Django表单是否有节省时间的方法

[更新:我不是在测试Django表单处理。我是在验证我的应用程序在用户更改表单时是否生成正确的响应。这是一个处理临床信息的应用程序,因此有很多可能的响应需要测试。]

这取决于你想测试什么。我会把你的测试目标定得比你听起来做得更精确一点

如果您需要测试的代码是表单验证逻辑,那么我只需在测试中直接实例化表单类,将各种数据字典传递给它并调用.is_valid(),检查是否存在正确的错误。不需要涉及HTML或HTTP请求

如果您正在测试的是视图逻辑(IMO应该最小化),那么您可能会希望使用测试客户机,但您不需要在这个级别执行多阶段测试或很多测试。在测试视图逻辑时,我不会刮去HTML(即测试模板),而是使用response.context从上下文中拉出表单对象

如果您想要测试的是模板包含正确的HTML以使表单实际工作(为了捕获错误,例如忘记在模板中包含表单集的管理表单),我使用WebTest和django WebTest,它可以解析HTML,并像浏览器一样轻松地填写字段值和提交表单

发表评论