【发布时间】:2020-04-04 17:29:07
【问题描述】:
我从 BDD (cucumber + capybara + selenium chromedriver) 和带有 factory_bot 的 TDD (rspec) 开始,我在 cucumber 功能上遇到错误 - step_definitions。
未初始化的常量用户(NameError)
使用 TDD,一切正常,工厂机器人工作正常。问题出在黄瓜上。
factories.rb
FactoryBot.define do
factory :user_role do
name {"Admin"}
query_name {"admin"}
end
factory :user do
id {1}
first_name {"Mary"}
last_name {"Jane"}
email {"mary_jane@gmail.com"}
password {"123"}
user_role_id {1}
created_at {'1/04/2020'}
end
end
支持/env.rb
require 'capybara'
require 'capybara/cucumber'
require 'selenium-webdriver'
require 'factory_bot_rails'
Capybara.register_driver :selenium do |app|
Capybara::Selenium::Driver.new(app, browser: :chrome)
end
Capybara.configure do |config|
config.default_driver = :selenium
end
Capybara.javascript_driver = :chrome
World(FactoryBot::Syntax::Methods)
问题就发生在这里
support/hooks.rb
Before '@admin_login' do
@user = create(:user)
end
step_definitions/admin_login.rb
Given("a registered user with the email {string} with password {string} exists") do |email, password|
@user
end
我不知道为什么,但是我无法使用 cucumber 和 factory_bot 访问用户。
有人可以帮帮我吗?
我想我需要在黄瓜上配置一些东西。
你们怎么看?
【问题讨论】:
标签: cucumber ruby-on-rails-5 bdd factory-bot