如何对Falcon API python执行单元测试



我用Python语言开发了Falcon框架的应用程序。我开发了一些API,现在我想执行单元测试,所以我使用了unittest包,但是我无法测试我的API,因为它没有通过单元测试。为了进行测试,我参考此文档我试图模拟 get 方法,但它要求我参数。此外,我无法执行任何放置或后期测试。这是我执行单元测试的代码

main.py

from app.api.v1 import scheduler
self.add_route('/v1/schedulers', scheduler.SchedulerCollection())

scheduler.py

类 SchedulerCollection(BaseResource(:

def __init__(self):
    db = redis_db.RedisStorageEngine()
    self.r = db.connection()
"""
Handle for endpoint: /v1/schedulers
"""

# @falcon.before(validate_scheduler_create( def on_post(self, req, res(:

    #some code here
#@falcon.before(auth_required)
def on_get(self, req, res):
    #some code here

scheduler_test.py

import sys, os
import unittest
import json
from falcon import testing
from app.api.v1 import scheduler
class SchedulerTestCase(testing.TestCase):
    def setUp(self):
        super(SchedulerTestCase, self).setUp()
        self.app = scheduler.SchedulerCollection.on_get 
class TestMyApp(SchedulerTestCase):
    def test_get_schedulers(self):
        doc = {u'message': u'Hello world!'}
        result = self.simulate_get('/v1/schedulers')
        result = self.simulate_get('/v1/schedulers')
        self.assertEqual(result.json, doc)


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

运行测试后,我收到此错误

Traceback (most recent call last):
  File "tests/scheduler_test.py", line 17, in setUp
    self.app = scheduler.SchedulerCollection().on_get(self.api_class)
TypeError: on_get() takes exactly 3 arguments (2 given)

我不知道我哪里做错了

任何帮助将不胜感激

谢谢

首先,self.app应该用你的猎鹰应用程序初始化,而不是你正在测试的方法。其次,simulate_getself.app(不是自我(的属性。

在此答案中查看更多信息。

相关内容

  • 没有找到相关文章

最新更新