2011-06-23 49 views

回答

1

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

+0

是。因为这个原因,我想模拟一个服务器错误,当get方法调用时,并测试如何处理错误。即我需要一个进入get方法的入口点来传递一个异常,或者我需要在测试之前有一个TestApp的预定义行为。 – starter

+0

@starter你将不得不更清楚你想测试什么。 “服务器错误”就是您的应用在获取未捕获的异常时返回的内容。你想测试你的应用程序如何处理未捕获的异常?它如何处理在特定地点抛出的特殊异常? –

+0

是的。我想测试它如何处理在特定位置抛出的特定异常以及我的应用如何处理未捕获的异常。 – starter

3

我绕过它使用除了循环尝试。

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') 

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