如何测试自定义handler500?

时间:2012-10-06 21:34:36

标签: python django

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

1 个答案:

答案 0 :(得分:2)

你想要做的是integration testing;单元测试不适合它。

Django includes support使用着名的实时浏览器测试工具,例如Selenium

正如您所指出的那样,对于您的具体情况,确实是pretty complicated to retrieve the status code for a page using Selenium,您可能因此想要使用更简单的方法:

  1. 使用LiveServerTestCase
  2. 使用python HTTP客户端(例如requests)访问测试页
  3. 检查测试页是否确实生成HTTP 500错误
  4. 检查测试页是否包含预期内容。
  5. 如果你想在测试页面上测试一些JS,那么就可以结合使用Selenium来测试状态。