레일을 Rails Tutorial으로 배우고 있습니다. 저자는 RSpec의 선택적 비트를 능동적으로 가르칩니다. 각 장 이후의 연습에서는 피스 티어 코드를 작성하는 법을 배울 수 있습니다. 나는 그 운동을하기로 결심했다. 하지만 문제는 다음 장에서 독자를 그렇지 않은 사람처럼 취급한다는 것입니다. 그래서 작성한 pithier 코드는 그가 작성한 새로운 'unpithy'코드를 어떻게 적용해야할지 모를 때 도전 과제가됩니다. 그것은 "더러운"대응입니다. 골수 버전에서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
이 문맥에서 before를 사용하여 여러 해시 값을 수정하는 적절한 방법입니까?
또한 RSpec 관련 질문에 대한 답을 찾는 데 어려움을 겪고 있습니다. 누구든지 이러한 종류의 답을 찾는 데 필요한 확실한 루틴을 가지고 있습니까? 여러 라인을 차지 블록이있는 경우
대단히 감사합니다. 도움이되었습니다. 나는 카피 바라 (Capybara)를 사용하고 있으므로, 나는 그들의 문서를 살펴볼 것이다. 또한,'{}'를 사용하여 단일 라인 블록을 감싸 주어야합니까, 아니면 그만 둘 수 있습니까? – EnergyWasRaw