Python-eve を使用して API サーバーを開発しており、API エンドポイントをテストする方法を知りたいです。具体的にテストしたいことがいくつかあります。
- POST/PATCH リクエストの検証
- 異なるエンドポイントの認証
- before_ および after_ フックの作業プロパティ
- 正しい JSON 応答を返す
現在、実際の MongoDB に対してアプリをテストしていますが、数百または数千のテストを実行すると、テストの実行に長い時間がかかることが想像できます。モックアップは別のアプローチですが、テストを可能な限り現実的なものに保ちながらそれを可能にするツールを見つけることができませんでした. イブアプリをテストするための推奨される方法があるかどうか疑問に思っています。ありがとう!
これが私が今持っているものです:
from pymongo import MongoClient
from myModule import create_app
import unittest, json
class ClientAppsTests(unittest.TestCase):
def setUp(self):
app = create_app()
app.config['TESTING'] = True
self.app = app.test_client()
# Insert some fake data
client = MongoClient(app.config['MONGO_HOST'], app.config['MONGO_PORT'])
self.db = client[app.config['MONGO_DBNAME']]
new_app = {
'client_id' : 'test',
'client_secret' : 'secret',
'token' : 'token'
}
self.db.client_apps.insert(new_app)
def tearDown(self):
self.db.client_apps.remove()
def test_access_public_token(self):
res = self.app.get('/token')
assert res.status_code == 200
def test_get_token(self):
query = { 'client_id': 'test', 'client_secret': 'secret' }
res = self.app.get('/token', query_string=query)
res_obj = json.loads(res.get_data())
assert res_obj['token'] == 'token'