0

Falcon frameworkをPython言語で使ってアプリケーションを開発しました。私はいくつかのAPIを開発しましたが、ユニットテストを実行してunittestパッケージを使用するようになりましたが、私はunittestに失敗してAPIをテストできません。 テストのために私はこれを参照しますdoc 私はgetメソッドをシミュレートしようとしましたが、それは私に引数を求めていました。また、私は入札または投稿のテストを行うことができません。Falcon API pythonの単体テストを行う方法

def __init__(self): 
    db = redis_db.RedisStorageEngine() 
    self.r = db.connection() 

""" 
Handle for endpoint: /v1/schedulers 
""" 

#する@ falcon.before(validate_scheduler_create: はここmain.py

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

scheduler.py

クラスSchedulerCollection(BaseResource)

ユニットテストを実行するために私のコードです) 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) 

は、私にはわからない、このエラーを取得しています

すべてのヘルプは高く評価されるだろう

ありがとうございました

答えて

0

まず、self.appはあなたのテストする方法ではなく、あなたのファルコンアプリで初期化する必要があります。第2に、simulate_getの属性はself.app(自己ではありません)です。

詳細はthis answerで確認してください。

関連する問題