Хороших кодеров вечер коллег,Rspec Validation Тесты на обновления
Я медленно пытается получить с рукоятками Rspec и большая часть моей проверки происходит после того, как пользователь будет создан, как вы можете видеть из приведенного ниже утверждения, здесь весь раздел проверки.
#validations for common attributes
validates :email, presence: true, on: :create, uniqueness: true,
:format => /@/
validates :password, presence: true, on: :create, length: {minimum: 6}
#validations blocks for dev
with_options :if => lambda { |o| o.role_type == "developer" } do |dev|
dev.validates :first_name, presence: true, on: :update
dev.validates :last_name, presence: true, on: :update
dev.validates :languages, presence: true, on: :update
dev.validates :dev_desc, presence: true, on: :update
dev.validates :github, presence: true, on: :update,
:format => URI::regexp(%w(http https github))
dev.validates :stackoverflow, presence: true, on: :update,
:format => URI::regexp(%w(http https stackoverflow))
dev.validates :level, presence: true, on: :update
dev.validates :street, presence: true, on: :update
dev.validates :city, presence: true, on: :update
dev.validates :state, presence: true, on: :update
dev.validates :postcode, presence: true, on: :update
end
#validations block for employer
with_options :if => lambda { |o| o.role_type == "employer" } do |e|
e.validates :company_name, presence: true, on: :update,
uniqueness: true
e.validates :employer_desc, presence: true, on: :update
e.validates :area_of_focus, presence: true, on: :update
e.validates :number_of_employees, presence: true, on: :update
e.validates :street, presence: true, on: :update
e.validates :city, presence: true, on: :update
e.validates :state, presence: true, on: :update
e.validates :postcode, presence: true, on: :update
end
Теперь у меня есть текущий тест, который неисправного ниже:
it "should not be valid with blank firstname" do
dev.first_name = ' '
dev.should_not be_valid
end
Пользователь перенаправляется на страницу редактирования, если они не являются полноценными. Я не понимаю, почему он не проходит. Я скрутил его и заменил на должен, который прошел тест.
Может кто-то, возможно, объясняет, почему он проходит, вот блок для разработчика:
let(:dev) { FactoryGirl.create :dev }
Update: Вот мой завод, не знаю, как это будет влиять на ошибку:
factory :dev, class: User do
first_name { Faker::Name.first_name }
last_name { Faker::Name.last_name }
email { Faker::Internet.email }
password "12345678"
password_confirmation "12345678"
role_type "Developer"
dev_desc "New to development but trying to help the community"
github "www.github.com"
stackoverflow "www.stackoverflow.com"
languages "Rails"
level "Junior"
street {Faker::Address.street_address}
city {Faker::Address.city}
state {Faker::Address.state}
postcode {Faker::Address.zip_code}
end
Цените свою помощь, пытаясь понять это, так как валидация работает вручную после регистрации.
Я до сих пор не вижу, какую ошибку вы получаете –