체스 보드의 첫 번째 행 (x_position = 0)에서 수직으로 움직이는 Rook에 대한 유효한 이동을 테스트하기 위해 코드를 DRY 할 것입니다.Rook Chess Piece에 대한 내 RSPEC 테스트 수행 : Rook.valid_move?
여기 내 현재의 도전 과제입니다. 다음 코드 블록은 x_position (0)부터 시작하여 y_position (0..7)을 반복하고 마지막으로 각 x_poisition을 최대 7 번 반복합니다.
현재 사양 테스트 코드 :
require 'rails_helper'
RSpec.describe Rook, type: :model do
describe "#valid_move?" do
it "returns true if move is valid vertically" do
game = FactoryGirl.create(:game)
rook = FactoryGirl.create(:rook, x_position: 0, y_position: 0, game: game)
(0..7).each {|i| (0..7).each {|j| expect(rook.valid_move?(i,j)).to eq(true)}}
end
난 무엇 후이 코드는 FactoryGirl가 (0,0)에서 루크를 시작하는 대신에, (0,0)에서 루크를 시작 FatroyGirl 가지고 루프를 사용합니다 (y_position을 반복하는 것입니다 함께 1..7) 그런 다음 x_position을 1 씩 증가시키고 (7,7)이 테스트 될 때까지 y_position (1..7)을 다시 반복합니다. 그런 다음 (0,0)
당신이 보드에 모든 위치 (0,0)에서 이동하는 경우 테스트 I 더에 의해 해요
브리드 돈에게 감사합니다! 그것은 매우 유용합니다. 그것은 두려운 순간처럼 보이지만, 나는 행동 (방법)을 사용하여 시험 내에서 조각을 움직이는 것에 대해 생각해야한다는 것을 깨닫지 못했습니다. 지금은 훨씬 더 의미가 있습니다. – peterbehere