0
私はPythonでtic tac toeゲームを作成しました。私はいくつかの機能をテストして、正常に機能することを確認したいが、どうやってそれをどうやって進めるのか分からない。 assertTrueとassertEqualを含むいくつかの異なるメソッドを試しました。私がテストしたい機能は、ボードの行、列、および対角線をチェックして、すべてのXまたはOと基本的に勝者があるかどうかを確認します。ここに私がテストしたい機能があります。Python unittestでブール関数をテストする
def checkRows(letter, board):
if ((board[0] == letter and board[1] == letter and board[2] == letter) or (board[3] == letter and board[4] == letter and board[5] == letter) or (board[6] == letter and board[7] == letter and board[8] == letter))
return True
else:
return False
def checkCols(letter, board):
if ((board[0] == letter and board[3] == letter and board[6] == letter) or (board[1] == letter and board[4] == letter and board[7] == letter) or (board[2] == letter and board[5] == letter and board[8] == letter))
return True
else:
return False
def checkDiags(letter, board):
if ((board[0] == letter and board[4] == letter and board[8] == letter) or (board[2] == letter and board[4] == letter and board[6] == letter))
return True
else:
return False
私はcheckCols機能がこのある動作しないために、今実行しているテスト:
import unittest
import tictactoeFuncs
#CheckCols tests.
class TestCases(unittest.TestCase):
def test_func1(self):
letter = X
board = letter
L2 = tictactoeFuncs.checkCols(letter, board)
self.assertEqual(L2, True)
# Run the unit tests.
if __name__ == '__main__':
unittest.main()
私はXまたはOに等しい文字を設定しようとしたが、それは動作しませんでした
"グローバル名 'Xは定義されていません"というエラーが表示されるので、関数のテスト方法は非常に混乱しています。
'letter = 10;ボード=レター ' - 何? 'check'関数がどのような引数を取るべきなのか知っていますか?それらの種類の議論を構築する。 '10'は有効なチック・タック・トゥ・レターでも有効なボードでもありません。 – user2357112
何がうまくいかないのかをもっと詳しく説明するために更新してください。問題は、 'board'がリストではなく数字であることが関係していると思いますか? – JETM
'checkDiags'は、2つの正方形について2つの検査を行い、3つの正方形に対しても1つの検査を行う。 – TigerhawkT3