Как написать юнит-тест для скрипта, использующего pygame, и таких членов, как pygame.MOUSEBUTTONDOWN? - PullRequest
0 голосов
/ 29 апреля 2019

Я делаю простую игру Connect 4 на python и использую pygame для GUI, но не могу найти способ написать модульный тест для того же

Вот ссылка на мой скрипт на питоне скрипт

Ссылка на мой проект

Для метода вроде

def play(self, board, players, is_valid_move, make_move, is_winning_move):
        """Method to play the game in GUI using pygame

        Note:
            When playing with AI a mouse click is required to trigger AI move

        Args:
            board (numpy.ndarray): Game board
            players (list): List of players
            is_valid_move (function): Move validator
            make_move (function): Makes move
            is_winning_move (function): Ckeck for winning move"""
        turn = random.randint(0, len(players) - 1)
        while True:
            self.draw(board)
            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    return None

                if event.type == pygame.MOUSEMOTION:
                    self.draw_black_rec()
                    self.draw_player_coin(players[turn].p_id, event)
                pygame.display.update()

                if event.type == pygame.MOUSEBUTTONDOWN:
                    self.draw_black_rec()
                    if players[turn].name == "AI":
                        col = players[turn].get_move()
                    if is_valid_move(col):
                        row = make_move(col, players[turn].p_id)
                    turn = (turn + 1) % len(players)

Я ожидаю написать unittest, тестирующий вышеуказанную функциональность, он также будет работать, если я не смогу протестировать весь метод только его часть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...