我正在使用 Python-eve 开发我的 API 服务器,并且想知道如何测试 API 端点。我想专门测试的几件事:
- POST/PATCH 请求的验证
- 不同端点的认证
- before_ 和 after_ 挂钩工作属性
- 返回正确的 JSON 响应
目前我正在针对真正的 MongoDB 测试该应用程序,我可以想象,一旦我运行了数百或数千个测试,测试将需要很长时间才能运行。模拟东西是另一种方法,但我找不到工具可以让我在保持测试尽可能真实的同时做到这一点。我想知道是否有推荐的方法来测试 eve 应用程序。谢谢!
这是我现在所拥有的:
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'