Во-первых, я хотел бы сказать, что у вас злое имя.
Во-вторых, ПОЗДРАВЛЕНИЯ по поводу вашего усилия в TDD с ROR Я обещаю, что как только вы начнете, вы не оглянетесь.
Простейшим быстрым и грязным решением будет создание новой действительной модели перед каждым из ваших тестов, например:
before(:each) do
@user = User.new
@user.username = "a valid username"
end
НО я предлагаю вам настроить фабрики для всех ваших моделей, которые будут генерировать действительную модель длявы автоматически, а затем вы можете запутаться с отдельными атрибутами и посмотреть, если ваша проверка.Мне нравится использовать FactoryGirl для этого:
По существу, после настройки ваш тест будет выглядеть примерно так:
it "should have valid factory" do
FactoryGirl.build(:user).should be_valid
end
it "should require a username" do
FactoryGirl.build(:user, :username => "").should_not be_valid
end
Да, а вот хороший Railscast , который объясняет все это лучше меня:
удачи:)
ОБНОВЛЕНИЕ: По состоянию на версия 3.0 Синтаксис для заводской девушки изменился.Я изменил свой пример кода, чтобы отразить это.