내가 RSpec에의 테스트를 쓰고 있어요 :rspec에서 .sample 메소드를 테스트하려면 어떻게해야합니까?
it "should choose a sign at random" do
game.choose_sign
expect(game.choose_sign).to eq "rock"
end
루비 코드 :
def choose_sign
["rock","paper","scissor"].sample
end
코드가 작동하지만 테스트는 값 중 하나를 선택한 경우 통과가 나는에 넣어 어떤 경기 rspec 테스트 즉, eq "rock"
매번 어떻게 통과합니까? 이것은 임의의 반환 값을 테스트 할 때 나중에 참조 할 때 알아두면 유용합니다. 나는 논리보다는 특정 가치 수익을 테스트하기 위해 제안
it "chooses a random sign" do
expect(["rock","paper","scissor"]).to include(game.choose_sign)
end
['srand'] (http://www.ruby-doc.org/core-2.1.3/Kernel.html#method-i-srand)를 사용하여 난수 생성기를 명시 적으로 시드 할 수 있습니다. – Stefan