Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Player
- attr_reader :boardpiece # i exist so game can read me
- def initialize(letter)
- @boardpiece = letter
- end
- def move_human(game, board)
- @game_two = game
- puts "human move..."
- human_move = gets.chomp
- human_symbol = human_move.to_sym
- # look for move as key in board.grid
- if board.grid.has_key?(human_symbol)
- if board.grid[human_symbol] == " "
- #puts "bingo"
- @move = human_symbol
- else
- puts "spot taken...try again"
- move_human(@game_two, board)
- end
- else
- puts "invalid move...try again"
- move_human(@game_two, board)
- end
- end
- end
- require 'game'
- require 'board'
- describe Player do
- describe 'move_human' do
- it 'receives cli input' do
- player_h = Player.new('X')
- player_c = Player.new('O')
- board = Board.new
- game = Game.new(player_h, player_c, board)
- player_h.move_human('X', board).should_receive(:puts).with('human move...')
- game.play
- end
- xit 'and returns a move value'
- end
- end
- gideon@thefonso ~/Documents/ca_ruby/rubytactoe (development)$ rspec spec
- Board
- creates a blank board with nine spaces
- can set the value of a specified cell
- checks if a space is taken or not
- drawgrid
- draws a blank grid given no input
- Player
- move_human
- human move...
- receives cli input (FAILED - 1)
- and returns a move value (PENDING: Temporarily disabled with xit)
- Pending:
- Player move_human and returns a move value
- # Temporarily disabled with xit
- # ./spec/player_spec.rb:16
- Failures:
- 1) Player move_human receives cli input
- Failure/Error: player_h.move_human('X', board).should_receive(:puts).with('human move...')
- Errno::EISDIR:
- Is a directory - spec
- # ./lib/player.rb:21:in `gets'
- # ./lib/player.rb:21:in `gets'
- # ./lib/player.rb:21:in `move_human'
- # ./spec/player_spec.rb:12:in `block (3 levels) in <top (required)>'
- Finished in 0.00977 seconds
- 6 examples, 1 failure, 1 pending
- Failed examples:
- rspec ./spec/player_spec.rb:6 # Player move_human receives cli input
- gideon@thefonso ~/Documents/ca_ruby/rubytactoe (development)$
- # These setup expectations for when "gets" and "puts" are called later...
- player_h.stub(:gets).and_return("some input from the user")
- player_h.should_receive(:puts).with("human move...")
- # And then we run the method where those expectations above will get triggered:
- player_h.move_human('X', board)
- player_h.stub(:gets).and_return("Some string")
Add Comment
Please, Sign In to add comment