public void Step_DoesAgentAndOpponentMoves() { var placeXAtTopLeft = new TicTacToeAction { Position = 0, Tile = BoardTile.X }; var placeOAtTopMiddle = new TicTacToeAction { Position = 1, Tile = BoardTile.O }; _opponent.GetAction(Arg.Any <Board>()) .Returns(placeOAtTopMiddle); var expectedBoard = Board .CreateEmptyBoard() .DoAction(placeXAtTopLeft) .DoAction(placeOAtTopMiddle); // act var observation = _env.Step(placeXAtTopLeft); // assert Assert.AreEqual(expectedBoard.ToString(), observation.Board.ToString()); }