0
遵循Michael Hartl rails教程。努力讓記憶標記測試通過,特別是記憶標記的非空白測試。從方法分配到類屬性rails
對於用戶類的代碼是下面
class User < ActiveRecord::Base
attr_accessible :name, :email, :password, :password_confirmation
has_secure_password
before_save { |user| user.email = email.downcase }
before_save { :create_remember_token }
validates :name, presence: true, length: { maximum: 50 }
VALID_EMAIL_REGEX = /\A[\w+\-.][email protected][a-z\d\-.]+\.[a-z]+\z/i
validates :email, presence: true, format: { with: VALID_EMAIL_REGEX }, uniqueness: {case_sensitive: false}
validates :password, presence: true, length: { minimum: 6 }
validates :password_confirmation, presence: true
private
def create_remember_token
self.remember_token = SecureRandom.urlsafe_base64
end
end
和測試我不能得到經過:
subject { @user }
...
describe "remember token" do
before { @user.save }
its (:remember_token) { should_not be_blank }
end
和錯誤消息我得到的是:
.....................F
Failures:
1) User remember token remember_token
Failure/Error: its (:remember_token) { should_not be_blank }
expected blank? to return false, got true
# ./spec/models/user_spec.rb:120:in `block (3 levels) in <top (required)>'
Finished in 0.68878 seconds
22 examples, 1 failure
Failed examples:
rspec ./spec/models/user_spec.rb:120 # User remember token remember_token
我不知道這是否相關,但sublime_text沒有對self關鍵字做任何事情(即它沒有突出顯示它以不同的顏色)。
我使用Ruby 1.9.3
很難說。請在運行'rspec ./spec/models/user_spec.rb:120'時發佈log/test.log的輸出 – phoet