|
1 | 1 | import unittest
|
2 | 2 | from unittest.mock import patch, MagicMock
|
| 3 | +import pygame |
3 | 4 | from game import Game
|
4 | 5 | from constants import GameSettings, Point
|
| 6 | +from snake import Snake |
5 | 7 |
|
6 | 8 |
|
7 | 9 | class TestGame(unittest.TestCase):
|
@@ -48,6 +50,35 @@ def test_place_food(self):
|
48 | 50 | self.game.place_food()
|
49 | 51 | self.assertNotIn(self.game.food, self.game.snake.blocks)
|
50 | 52 |
|
| 53 | + @patch('pygame.event.get') |
| 54 | + def test_play_again_y(self, mock_event_get): |
| 55 | + mock_event_get.return_value = [MagicMock(type=pygame.KEYDOWN, key=pygame.K_y)] |
| 56 | + value = self.game.play_again() |
| 57 | + self.assertTrue(value) |
| 58 | + |
| 59 | + @patch('pygame.event.get') |
| 60 | + def test_play_again_return(self, mock_event_get): |
| 61 | + mock_event_get.return_value = [MagicMock(type=pygame.KEYDOWN, key=pygame.K_RETURN)] |
| 62 | + value = self.game.play_again() |
| 63 | + self.assertTrue(value) |
| 64 | + |
| 65 | + @patch('pygame.event.get') |
| 66 | + def test_play_again_n(self, mock_event_get): |
| 67 | + mock_event_get.return_value = [MagicMock(type=pygame.KEYDOWN, key=pygame.K_n)] |
| 68 | + |
| 69 | + @patch('pygame.event.get') |
| 70 | + def test_play_again_esc(self, mock_event_get): |
| 71 | + mock_event_get.return_value = [MagicMock(type=pygame.KEYDOWN, key=pygame.K_ESCAPE)] |
| 72 | + |
| 73 | + def test_restart_game(self): |
| 74 | + self.game.snake = Snake(init_length=10) |
| 75 | + self.game.score = 10 |
| 76 | + |
| 77 | + self.game.restart_game() |
| 78 | + self.assertEqual(len(self.game.snake.blocks), 3) |
| 79 | + self.assertEqual(self.game.score, 0) |
| 80 | + self.assertIsNotNone(self.game.food) |
| 81 | + |
51 | 82 |
|
52 | 83 | if __name__ == '__main__':
|
53 | 84 | unittest.main()
|
0 commit comments