4

我为服务器错误编写处理程序并在根 urls.py 中定义它: handler500 = 'myhandler' 我想编写 unittest 来测试它是如何工作的。为了测试,我编写了带有错误的视图并在测试 URL 配置中定义它,当我在浏览器中向该视图发出请求时,我看到我的处理程序并收到状态代码 500,但是当我启动对该视图发出请求的测试时,我看到堆栈跟踪和我的测试失败了。您对通过 unittests 测试 handler500 有什么想法吗?

4

1 回答 1

3

您在这里要做的是集成测试;单元测试将不是适合它的工具。

Django 支持使用著名的实时浏览器测试工具,例如Selenium

正如您所指出的,对于您的具体情况,使用 Selenium 检索页面的状态代码确实非常复杂,因此您可能希望使用更简单的方法:

  1. 用一个LiveServerTestCase
  2. 使用python HTTP客户端如requests访问测试页面
  3. 检查测试页面是否生成 HTTP 500 错误
  4. 检查测试页是否包含预期的内容。

如果你想在测试页面上测试一些 JS,那么使用 Selenium 作为那部分,结合请求来测试状态。

于 2012-10-07T11:18:45.717 回答