2011-01-27 13 views
14

私は(優秀な)railstutorial.orgサイトで働いていますが、rspecに関する基本的な質問があります。rspec、不明な属性の質問

新しいユーザーモデルで以下のテストを実行すると、「unknown attribute:username」というメッセージが表示され、テストに失敗しました。

before(:each) do 
    @attr = { :lname_e => "User", :fname_e => "Test", :email => "[email protected]", :username => "testUser" } 
    end 

    it "should create a new instance given valid attributes" do 
    User.create!(@attr) 
    end 
フィールドは、ユーザーテーブル(文字列)である

Failures: 
    1) User should create a new instance given valid attributes 
    Failure/Error: User.create!(@attr) 
    unknown attribute: username 
    # ./spec/models/user_spec.rb:11:in `block (2 levels) in <top (required)>' 

エラー構文は、それがattr_accessibleとしてモデルにだされ、コンソールに私はまったく同じ構文を持つユーザーを作成することができますテスト。この「ユーザー名」フィールドは、最初のテーブルを作成した後でマイグレーションによって追加されました。ここに更新する必要がある他のファイルはありますか? (コンソールが動作している理由である)

おかげで、

答えて

26

あなたがrake db:test:prepareを実行しましたか?

20

フィールドは、テストデータベースから消失する可能性がありますが、あなたの開発データベースに存在します。

は、必ずあなたの移行は、すべて最新であるし、テスト用データベースを更新作ってみましょう:

rake db:migrate 
rake db:test:prepare 
+0

うん、そうだった。ありがとう – nktokyo

関連する問題