模拟服务器错误

时间:2011-06-23 23:25:19

标签: unit-testing google-app-engine webtest

我使用App Engine运行我的应用程序,并想测试它将如何处理服务器错误。 是否有可能通过WebTest 模拟错误500?

2 个答案:

答案 0 :(得分:3)

我使用try except循环来解决它。

try:
    self.testapp.get('/')
    self.assertEqual(1, 2, 'GET request should have resulted in a 405 error') # Purposely fail
except webtest.app.AppError:
    pass

另一种方法如下:

self.assertEqual("500 Internal Server Error", self.testapp.post('/', params={}, expect_errors=True).status, 'POST Request should have resulted in a 500 error')

两种方法仍然会导致回溯出现,但测试通过

答案 1 :(得分:1)

500错误就是您的webapp在获得未捕获的异常时返回给客户端的错误。这不是一个特定的失败 - 只是当意外出错时它向用户显示的内容。相反,您应该对处理程序进行单元测试,以确保它们按预期运行。