Это довольно сложный пример, но конечный результат - это действительно чистый метод, позволяющий ожидать, что сценарии с огурцами потерпят неудачу.Это всего лишь несколько небольших компонентов проекта, над которым я работаю.Причина создания пользователя с отсутствующими данными заключается в том, что в моей модели пользователя есть несколько валидаторов.Весь исходный код можно найти здесь .
features / step_definitions / before_step.rb
Before("~@fails") do
def assert_cucumber(assersion, msg = "an error was thrown")
assert(assersion == true, msg)
end
end
Before("@fails") do
def assert_cucumber(assersion, msg = "an error was thrown")
assert(assersion == false, msg)
end
end
features / step_definitions / user_step.rb
Given /^a user with$/ do |params|
params = params.rows_hash
unless User.find_by({username: params[:username]})
assert_cucumber(User.new(params).save, "could not create user")
end
end
функции / user.feature
Scenario: check if userers exsist
Given a user with
| username | johnsmith |
| email | johnsmith@example.com |
| password | password |
Then a user with username "johnsmith"
@fails
Scenario: create user with missing data
Given a user with
| username | johndoe |
Then a user with username "johndoe"