我正在使用Python-eve开发我的API服务器,并且想知道如何测试API端点。我想特别测试一些事情:
目前我正在针对一个真正的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'
答案 0 :(得分:4)
Eve测试套件本身是using a test db而不是嘲笑任何东西。每次运行都会创建并删除测试数据库,以确保隔离(不是超快,是的,但尽可能接近生产环境)。当然你应该测试你自己的代码,你可能不需要像上面的test_access_public_token
那样编写测试,因为这样的东西已经被Eve套件覆盖了。您可能还想查看Eve Mocker扩展程序。
还要熟悉Authentication and Authorization tutorials。它看起来像你要获得整个令牌的方式是不合适的(你想使用请求标头的那种东西)。