Devise, Rspec und Mongoid Test fehlgeschlagen - Ruby-on-Rails, Rubin, Rspec, Mongoid

require "spec_helper"

describe User do

before(:each) do
@attr = {
:username => "User",
:email => "[email protected]",
:password => "foobar",
:password_confirmation => "foobar",
:phone_no => "0808322222"
}
end

it "should create a new instance given a valid attribute" do
User.create!(@attr)
end
end

Der Test bleibt schief, bitte nicht wissen warum

Failures:

1) User should create a new instance given a valid attribute
Failure/Error: User.create!(@attr)
Mongoid::Errors::Validations:
Validation failed - Phone no can"t be blank, Username can"t be blank.
# ./spec/models/user_spec.rb:16:in `block (2 levels) in <top (required)>"

Finished in 0.2505 seconds
2 examples, 1 failure

Antworten:

1 für die Antwort № 1

Ihr Problem ist, dass Sie einige Daten mit der Methode #create definieren, wobei die Daten nicht attr_accessible Attribut sind.

Sie können dieses Attribut also in Ihrer attr_accessible-Liste hinzufügen, indem Sie die Massenzuweisung durch ein Beispiel vermeiden können:

  it "should create a new instance given a valid attribute" do
u = User.new
@attr.each do |k,v|
u.send("#{k}=", v)
end
u.save!
end

Am beliebtesten