Я изучаю рельсы с помощью Rails Tutorial. Автор активно преподает выборочные биты RSpec. В упражнениях после каждой главы у вас есть возможность научиться писать более строгий код. Я решил сделать эти упражнения. Но проблема заключается в следующих главах: он обращается к читателю так, как будто этого не делал, поэтому более наглядный код, который вы написали, создает проблемы, когда вы не знаете, как приспособить новый «неуловимый» код, который он пишет, это «более крутой» аналог.Ruby on Rails RSPEC
В содержательных версиях, начало файла поддается меньше повторов, и выглядит так:
require 'spec_helper'
describe User do
before { @user = User.new(name: "Example User", email: "[email protected]",
password: "foobar", password_confirmation: "foobar") }
subject { @user }
it { should respond_to(:name) }
it { should respond_to(:email) }
it { should respond_to(:password_digest) }
it { should respond_to(:password) }
it { should respond_to(:password_confirmation)}
it { should be_valid }
.
.
.
end
Итак, наши тесты выглядеть так:
describe "when email is not present" do
before { @user.email = " " }
it { should_not be_valid }
end
При попытке чтобы создать тест на наличие или отсутствие @user.password
и @user.password_confirmation
, я хочу продолжить этот формат RSpec.
версия авторов выглядит так:
describe "when email is not present" do
before do
@user= User.new(name: "Example User", email: "[email protected]",
password: " ", password_confirmation = " ")
end
it { should_not be_valid }
end
Моя попытка на него (так как автор переходит к методу ведения дел без осуществления pithier кода RSpec) будет как таковой:
describe "when password is not present" do
before { @user.password = " ", @user.password_confirmation = " " }
it { should_not be_valid }
end
Является ли это правильным способом изменения нескольких значений хэша с использованием ранее в этом контексте?
Кроме того, я изо всех сил пытаюсь найти ответы на мои вопросы RSpec. У кого-нибудь есть твердая рутина для поиска таких ответов?
Удивительно, спасибо, это было полезно! Я использую Capybara, поэтому я посмотрю на их документы. Кроме того, вам нужно окружать отдельные строки блоком '{}', или вы можете их оставить? – EnergyWasRaw