【发布时间】:2011-06-05 19:09:55
【问题描述】:
我有一个进行测试的控制器:
@first_login = (@user.sign_in_count == 1)
我需要使用 rspec 规范中的设计进行设置:
我尝试了四个想法:在所有这些想法中,用户的创建方式如下:user = Factory(:member) [工厂见下文]
user.stubs(:sign_in_count).returns(1)
sign_in user
get 'index'
user.sign_in_count = 1
sign_in user # here user.sign_in_count == 1
get 'index' # here user.sign_in_count == 1
sign_in user
sign_in user
get 'index'
sign_in user
user.sign_in_count = 1
get 'index'
但每次在控制器中,设计特定的用户属性都会被清零/清零。
reset_password_token: nil, reset_password_sent_at: nil,
remember_created_at: nil, sign_in_count: 0, current_sign_in_at: nil,
last_sign_in_at: nil, current_sign_in_ip: nil, last_sign_in_ip: nil
有什么想法吗?
[specs/factories.rb - factory_girl]
Factory.define :member, :class => User do |c|
c.password "a123456h"
c.first_name "Jack"
c.last_name "Lee"
c.email "jxxxx@example.com"
c.address_street "123 Main"
c.address_city "Anytown"
c.address_state "NV"
c.address_zip "40455"
c.address_country "USA"
c.when_account_created 2.days.ago
c.change_password_count 3
c.forgot_password_count 2
c.created_at 2.days.ago
c.updated_at 10.hours.ago
end
【问题讨论】:
-
您是如何创建用户实例的?你用的是固定装置还是工厂女孩?
-
我已经使用 factory_girl 以及手动创建了实例。发生的情况是控制器似乎获得了与我们设置不同的用户。
标签: ruby-on-rails rspec devise