2016-02-25 8 views
2

Я новичок в языке Охотника, и мне кажется, что это очень простой вопрос, но я не мог найти ответа на него.Можно ли написать шаг очертания на нескольких строках?

Я знаю, что можно писать многострочный шаг аргумент в Gherking, как это:

Given a blog post named "Random" with Markdown body 
    """ 
    Some Title, Eh? 
    ============== 
    Here is the first paragraph of my blog post. Lorem ipsum dolor sit amet, 
    consectetur adipiscing elit. 
    """ 

Мой вопрос о написании одного шага на несколько строк, что-то вроде этого:

Given that Gherkin language allows me to write my step definitions \ 
    on multiple lines 
Then my test cases would be easier to read :) 

В приведенном выше примере я использовал символ «\» как символ продолжения строки. Кстати, я попробовал пример выше и получил ошибку парсера.

+1

Я думаю, что это вопрос лучше, чем ниже люди дают вам кредит. Я лаконичный писатель, и я постоянно бегу из космоса. –

ответ

0

Вы попытались получить ошибку синтаксического анализа. Я предполагаю, что запись длинной строки на одной строке не давала вам ошибки синтаксического анализа. Поэтому вы ответили на свой вопрос, если нет.

Я хотел бы предложить вам спросить себя, почему линии должны быть длинными. Желаемое поведение, действительно ли нужно так много деталей, что линия становится очень длинной?

Часто можно выразить себя короче, перефразируя предложение. Также возможно, что вы можете сломать длинное предложение, используя ключевые слова Gherkin And или But.

+0

Спасибо Томас, я принимаю это как правильный ответ. На самом деле невозможно написать один шаг по нескольким строкам, однако And или But можно использовать для достижения той же цели. –

3

Да, мы можем написать шаг очертания на нескольких строках, используя тройной набор двойных кавычек ("" "). Gherkin распознает тройной набор двойных кавычек в качестве ограничивающих разделителей для многострочной строки и передает ее. . Независимо от содержания вы пишете между тройным набором двойных кавычек будут передан на ваш шаг определение в виде одной строки

как и в моем текущем проекте капибары, я написал Огурец шага на нескольких строках, как показано ниже:

Scenario: Some test scenario 
    Given Bob is on "www.abc.com" 
    When Bob creates team "Test Team" 
    Then Bob sees message: 
     """ 
     As the Team Captain you will be responsible for paying for the team after 
     registration closes. You will be emailed instructions at the close of 
     registration. 
     """ 
And Bob clicks "Next" button 

Определение шага для многострочной линии огурцов:

And(/^(\S*) sees message:$/) do |user, message| 
    page.should have_content(message) 
end 

В этом я использовал контент, прошедший как есть. Вы также можете разделить свой контент и использовать по мере необходимости. Для получения дополнительной информации, пожалуйста, обратитесь к указанной ниже ссылке: http://asymmetrical-view.com/2011/06/02/cucumber-gherkin-and-multiline-arguments.html

Надеется, что это помогает :)

+0

Это должно быть отмечено как правильный ответ. – Richard

+1

Это хорошая информация, но не ответ на заданный вопрос. Такая же информация уже предоставляется в самом вопросе, поскольку я знаю, что аргументы могут быть написаны на нескольких строках. Вопрос в том, чтобы написать одиночный длинный шаг Охотника, который не имеет аргументов, на нескольких строках. Ответ Томаса обеспечивает, по крайней мере, обходное решение, как достичь этого, а также является хорошей практикой. Вот почему я отметил его как правильный ответ (по крайней мере на данный момент :) –