First Iteration, added the test, and a class that implements it.
New iteration. At TicTacToe, the first to play is always X player.
New iteration, after a first move, the turn is for another player ...

I'm not sure if I'm going in the right direction here ... Hmmmmm
Next iteration, another simple rule added to the game to ensure the turns are respected.
Fixed a mistake introduced in the previous step: the test was not testing what it said it was testing.

test_after_O_player_moves_X_player_should_have_its_turn was corrected, so that
after X, goes O, after O goes X, and so on. The code will need a refactoring
soon.
New iteration. Added a test so that if the same player wants to mark a position again, it will generate an exception.

I'm not really sure now, if I will need to explicity allow the client to
specify the player that should go in each moment. That knowledge, the knowledge
of the current game state should only be holded by the game object.
Perhaps I did overcomplicate the implementation a little bit. Next iteration will be a refactoring.
Refactoring, and simplification of game logic.

After some thoughts I have decided to simplify the interface letting all the
game state knowledge inside the TicTacToeGame. With this, the client does not
need to provide which player should play, since it's internal knowledge of the
game. In most of the cases, I shouldn't need more than that.

This has led me to rename all the tests, and it also has helped me to choose
better names for the TicTacToeGame class.

I have also removed test_game_should_not_allow_to_mark_the_same_position_twice
test, since it's not possible anymore: with the new implementation we reduce
the number of necessary checkings.
New iteration. Added a test to check that a player is not able to mark a position that is already marked.

With this test, I have extendend the game state so that it has an internal
representation about the positions marked by each player.