2016-04-29 8 views
0

Die Tornado-Test-Thema Doc ist so einfach, ich bin nicht ganz sicher, wie man einen Unit-Test auf Tornado zu tun. dass wie:wie Unit-Test auf Tornado zu tun

hier ist ein api.py:

import tornado 
import logging 
from tornado.web import RequestHandler 
import time 


class AnalyticsBWSpecificHour(RequestHandler): 
    def get(self): 
     return self.write({'message':'no get method'}) 


class Application(tornado.web.Application): 
    def __init__(self,**kwargs): 
     api_handlers = [ 
      (r"/", AnalyticsBWSpecificHour), 
     ] 

     logging.debug(api_handlers) 

     super(Application, self).__init__(api_handlers, **kwargs) 

und die test_tornado.py:

from api import Application 

from tornado.testing import AsyncHTTPTestCase 
import tornado 
import logging 
logging.basicConfig(level=logging.DEBUG) 
import unittest 

class ApiTestCase(AsyncHTTPTestCase): 
    def get_app(self): 
     self.app = Application(debug=True) 
     return self.app 

    def test_status(self): 
     print(self.get_url('/')) 
     response = self.fetch(self.get_url('/'),method='GET') 
     self.assertEqual(response.code,200) 

if __name__ == '__main__': 
    unittest.main() 

auch das ist ganz einfaches Beispiel, bekomme ich auch die 599 Fehler. Bitte hilf mir.

Antwort

3

response = self.fetch (self.get_url ('/'), method = 'GET')

self.fetch() Anrufe self.get_url für Sie. Entweder tun Sie self.fetch('/') oder self.http_client.fetch(self.get_url('/')), aber mischen Sie die zwei nicht.

Auch debug=True in Tests nicht bestehen; Das Autoreload wird in einer Unittest-Umgebung das Falsche tun.

+0

Danke, es funktioniert jetzt. – wanze