【发布时间】:2018-12-21 21:33:51
【问题描述】:
有兴趣了解 BDD,我正在关注Setting up a BDD stack on a rails 5 application 中提到的免费 Rails 测试手册,并且几乎完成了第 5 章引导用户身份验证系统。
本书第39页最后一行写着
此时一切都应该是绿色的
但是,当我运行 bundle exec cucumber 时,我有两个失败的场景(用户登录和用户注销)。黄瓜输出的摘录附在下面:
When I fill in the login form #
features/step_definitions/authentication_steps.rb:29
undefined method `current_sign_in_ip' for #<User:0x0055a41ac1eeb8> (NoMethodError)
./features/step_definitions/authentication_steps.rb:32:in `"I fill in the login form"'
features/authentication.feature:15:in `When I fill in the login form'
app/models/user.rb
class User < ApplicationRecord
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable,
:confirmable
end
db/migrate/20181221105428_add_trackable_to_devise.rb
class AddTrackableToDevise < ActiveRecord::Migration[5.2]
def change
add_column :users, :sign_in_count, :integer, default:0, null: false
add_column :users, :current_sign_in_at, :datetime
add_column :users, :last_sign_in_at, :datetime
add_column :users, :current_sign_in_ip, :inet
add_column :users, :last_sign_in_ip, :inet
end
end
完整的代码,pdf 书可在github repo 获得。
非常感谢任何帮助。
【问题讨论】:
-
您是否运行
rake db:test:prepare在测试环境中运行迁移? -
不,我没有,感谢您的帮助,它解决了这个特定问题。
标签: ruby-on-rails devise cucumber