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