2015-06-10 3 views
4

Я использовал SpecFlow некоторое время, не используя логику «но».Specflow Given When Then BUT?

Учитывая следующий сценарий:

Scenario: Kiran logs into the system but doesn't click remember me 
Given I have a username of 'Kiran' 
And a password of 'password' 
When I chose login 
But I don't chose remember me 
Then I should be logged in 
And Taken to the home screen 
But My username should not be remembered 

Может не «а» шаги просто быть взаимозаменяемыми «и»?

Есть ли какое-либо преимущество в использовании «но»?

Я прав, думая, что это чисто для удобства чтения?

Я с нетерпением ожидаю услышать ваши мысли об этом.

Большое спасибо, Киран

ответ

7

Да, вы правы, «и» и «но» являются взаимозаменяемыми в синтаксисе огурцов.

Однако в моем опыте «и» используется, когда вы показываете, что пользователь должен выполнять действие, в то время как «но» лучше всего подходит, когда вы хотите, чтобы подчеркнуть, что пользователь не должен выполнить действие; это потому, что «но» на английском языке обычно используется в отрицательном контексте.

Таким образом, в вашем примере:

Но я не выбрал запомнить меня

Есть хорошее использование «но», поскольку они не выполняют действия. Кроме того, использование «но» делает цель теста явным и устраняет любые возможные двусмысленности.

+0

Спасибо, Бен! Я обдумывал это весь вечер. –

+2

Нет проблем: D это хороший вопрос, и это помогает мне укрепить мое понимание, отвечая на такой вопрос. –

+1

Я думаю, что хорошо иметь синтаксис, чтобы сказать 'Do it' и' Do not do that'. Спасибо за объяснение. –

Смежные вопросы