Railsは初めてで、お時間をいただきありがとうございます。だから私は次のテストを実行しています:
test "does not validate without" do
@user.update_attributes(email: "example@example.com", password: "12345699", password_confirmation: "12345699")
@user.confirm!
assert(!@user.save, "this should not be valid since it lacks a zipcode")
@user.update_attributes(password: "12345678", password_confirmation: "12345678")
assert(!@user.save, "this should be invalid straight up")
@user.update_attributes(sex: "male")
@user.update_attributes(zipcode: "33333")
@user.save
puts @user.errors.to_yaml
assert(@user.save, "this should be valid straight up")
end
そして、私はこの出力を取得します:
Run options:
# Running tests:
--- !ruby/object:ActiveModel::Errors
base: !ruby/object:User
attributes:
id: 980190962
username:
email: ''
encrypted_password: !binary |-
JDJhJDA0JEFHc0RaOG9zWDlGcWguNGtTN0tuTi5SeEtGNGpqcVR3bU4uVFdD
VzZ6eWxMVGxFbXJzUmhh
reset_password_token:
reset_password_sent_at:
remember_created_at:
sign_in_count: 0
current_sign_in_at:
last_sign_in_at:
current_sign_in_ip:
last_sign_in_ip:
created_at: 2013-02-21 19:42:48.000000000 Z
updated_at: 2013-02-21 19:42:48.985150392 Z
first_name:
last_name:
zipcode: 33333
sex: male
provider:
uid:
avatar_image:
confirmation_token: GjCHVfywWX2hqUHTqBgN
confirmed_at: 2013-02-21 19:42:49.195009552 Z
confirmation_sent_at: 2013-02-21 19:42:49.035655702 Z
unconfirmed_email: example@example.com
messages: !omap
- :email:
- can't be blank
- can't be blank
F
Finished tests in 2.479095s, 0.4034 tests/s, 1.2101 assertions/s.
1) Failure:
test_does_not_validate_without(UserTest) [test/unit/user_test.rb:105]:
this should be valid straight up
何を与える?? 確認したのにメールが空欄になるのはなぜですか? 郵便番号を更新する前に確認呼び出しを移動し、性別を更新した後、性別と郵便番号の両方の存在を検証しても、これは機能します (テストはエラーなしで実行され、すべてパスします)。現在、テストジェムはありません。
私のモデルの関連部分は次のとおりです。
class User < ActiveRecord::Base
devise :database_authenticatable, :confirmable, :registerable,:omniauthable, :recoverable, :rememberable, :trackable, :validatable
# Setup accessible (or protected) attributes for your model
attr_accessible :username, :sex, :email, :password, :first_name, :last_name, :zipcode,
:password_confirmation, :remember_me, :provider, :uid, :avatar_image, :remote_avatar_image_url
validates :username, :uniqueness => true
validates :email, :uniqueness => true
validates_presence_of :sex, :zipcode, :password_confirmation
validates_presence_of :email
validates_length_of :zipcode, :is => 5
# attr_accessible :title, :body
has_one :gallery, :dependent => :destroy
end