0
我试图在编写Tornado应用程序时遵循TDD练习。我有一个端点与get
方法,从几个API获取数据,过滤器,结合它并发送响应。对于这个get
处理程序,我创建了一个帮助程序,它负责异步数据提取。我想为它编写测试。如何编写Tornado的AsyncHTTPClient测试?
助手看起来是这样的:
class DummyHelper(object):
@gen.coroutine
def fetch(self, url):
http_client = AsyncHTTPClient()
response = yield http_client.fetch(url)
raise gen.Return(response.body)
而且测试:
from tornado.testing import AsyncHTTPTestCase
from tornado.web import HTTPError
import app
from lib.handlers.dummy import DummyHelper
from tornado.testing import gen_test
class TestDummyHandler(AsyncHTTPTestCase):
def get_app(self):
return app.get_app()
@gen_test
def test_200_fetch(self):
helper = DummyHelper()
response = yield helper.fetch("http://google.com/")
self.assertEqual(response.code, 200)
@gen_test
def test_404_fetch(self):
helper = DummyHelper()
with self.assertRaises(HTTPError):
yield helper.fetch("http://google.com/test")
一切工作正常进行test_200_fetch
。但它不适用于test_404_fetch
。如何使它工作?我应该写这些测试吗?
可以写一段代码如何处理404'DummyHelper.fetch'。我试图执行你提到的内容,但仍然失败。 –
我已经添加了一些示例 – kwarunek