2013-03-23 2 views
0

Почему вы получаете эту ошибку? Как исправить?Неопределенный метод `valid? ' для # <Класс: 0x94b626c>

1) User should exist 
    Failure/Error: User.should be_valid 
    NoMethodError: 
     undefined method `valid?' for #<Class:0x94b626c> 

Тест:

require 'spec_helper' 

describe User do 
    it "should exist" do 
    User.should be_valid 
    end 
    it "should not allow me to create a new user without required fields" do 
    User.new(:email => 'bob').should_not be_valid 
    end 

end 

Второй тест работает нормально, как я могу получить первый один пройти? Я просто хочу проверить, существует ли модель

+0

Не будет 'valid?' Находиться в экземпляре в классе User, а не в классе User? – pjumble

+0

да. Как я могу проверить, существует ли класс? –

ответ

1

Тестирование класса неявно проверяет его существование. Оба образца кода будут ошибочными, если класс не существует. Первое не нужно.

+0

хорошо пункт. Недостаток заключается в том, что при этом все попытки выполняются с ошибкой, а не за счет того, что сама модель не существует. Один из вариантов, который я пытаюсь сделать, - 'User.all.count.should == 0' –

0

Заменить User.should be_validUser.new.should be_valid в первом тесте. RSpec вызывает valid? в классе User вместо экземпляра его.

Смежные вопросы