2015-08-21 4 views
2

Я новичок в python и в настоящее время изучаю, как писать тесты BDD с использованием Lettuce (python). У меня очень простой REST API на основе флеш-фреймворка. Я немного застрял в точке вызова функций под app.route. Например, мой API выглядит так:Тесты BDD для проверки Flask REST API

@app.route('/') 
@app.route('/documentation') 
def documentation(): 
    return auto.html() 

Мои тесты салата находятся в папке с функциями. В этой папке есть два файла с именем test.feature и steps.py. test.feature содержит следующие функции.

Feature: To test the root of API 

    Scenario: Call the root of the API 
     Given I have "/" or "/documentation" 
     When the user requests GET '/' 
     Then I response should be "GET HTTP/1.1 200". 

определения записываются в файле steps.py следующим образом.

@step('I have "([^"]*)" or "([^"]*)"') 
    def display_api(step, value, option): 
     print ('Attempting to display the API docs..') 
     ----- 

Я не знаю, как я могу назвать @ app.route («/») для запуска тестов и вернуть статус 200 до салата или как будет салат-латук запустить тесты? Я просмотрел документацию салата, и я все еще не могу понять, как сделать автоматический тест для моего REST API. Любое предложение или поддержка будут высоко оценены. Спасибо заранее за ваше время.

ответ

0

Действительно, вам не нужно звонить @ app.route ('/') непосредственно для запуска тестов, вам нужно только описать шаги и тестовые примеры. Затем вы запустите салат инструмента, который идет через испытание:

$ lettuce test/features/ 

    Feature: .... # test/features/user.feature:1 
    Scenario: ... 

и так далее.

Дополнительная информация: https://semaphoreci.com/community/tutorials/bdd-testing-a-restful-web-application-in-python