Я разрабатываю свой сервер API с помощью Python-eve и хотел бы знать, как тестировать конечные точки API. Несколько вещей, которые я хотел бы протестировать конкретно:
- Проверка запросов POST/PATCH
- Аутентификация различных конечных точек
- До_ и после_ хуков рабочее свойство
- Возвращает правильный ответ 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'