現在の三目並べプロジェクトのフォルダ構成を修正しテストファイルを作成します。
修正1 tic_tac_toe.rbの作成
main.rb内にある基本ロジックを全て、tic_tac_toe.rbに移します。
tic_tac_toeフォルダ内にtic_tac_toe.rbを作成してください。
ruby-practice/
├ docker-compose.yml
├ code/
│ └ Dockerfile
│ └ main.rb
│ └ tic_tac_toe/
│ └ tic_tac_toe.rb
この時に、ゲームのメイン部分に関しては以下のようなメソッドを実装してtic_tac_toe.rbに移植してください。
# 説明: ゲームのmain部分
# このメソッドをコールするとゲームが始まる
# 引数: なし
# 戻り値: なし
def start
player = 1
board = [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
while continue?(player, board)
row, col = gets_position()
place_piece(board, player, row, col)
put_board(board)
player = get_opponent_player(player)
end
put_result(board)
end
修正2 main.rbの修正
新しく定義したstartメソッドをmain.rb
でコールするように修正を加えます。
require "./tic_tac_toe/tic_tac_toe"
start()
修正3 テストファイルの作成
テストを記載していくtic_tac_toe_test.rbファイルを作成します。
ruby-practice/
├ docker-compose.yml
├ code/
│ └ Dockerfile
│ └ main.rb
│ └ tic_tac_toe/
│ └ tic_tac_toe.rb
│ └ test/
│ └ tic_tac_toe_test.rb
以上でフォルダの修正は完了となります。
テストを動作させる
作成したtic_tac_toe_test.rb
に以下の内容を追加してください。
require "minitest/autorun"
require "../tic_tac_toe/tic_tac_toe"
class TicTacToeTest < Minitest::Test
end
一度テストを動かしてみましょう(何も書かれておりませんが)
ruby tic_tac_toe_test.rb
下のようなログが出てたらテストが実行できています。
Run options: --seed 6237
# Running:
Finished in 0.001210s, 0.0000 runs/s, 0.0000 assertions/s.
0 runs, 0 assertions, 0 failures, 0 errors, 0 skips
テストを実装する準備は整いました!
次のセクションでメソッドをテストしていきましょう!