Added test case for unittest which is in the standard library, and therefore more people have it. It's a less good test though, because it is not properly parameterized.

This commit is contained in:
emilybache 2012-10-09 15:51:08 +02:00
parent 837433847e
commit 406fac2681
2 changed files with 69 additions and 46 deletions

View File

@ -1,54 +1,11 @@
import pytest
from tennis import TennisGame
# actual test code
from tennis_unittest import test_cases
class TestTennis:
@pytest.mark.parametrize('p1Points p2Points score p1Name p2Name'.split(),[
(0, 0, "Love-All", 'player1', 'player2'),
(1, 1, "Fifteen-All", 'player1', 'player2'),
(2, 2, "Thirty-All", 'player1', 'player2'),
(3, 3, "Forty-All", 'player1', 'player2'),
(4, 4, "Deuce", 'player1', 'player2'),
(1, 0, "Fifteen-Love", 'player1', 'player2'),
(0, 1, "Love-Fifteen", 'player1', 'player2'),
(2, 0, "Thirty-Love", 'player1', 'player2'),
(0, 2, "Love-Thirty", 'player1', 'player2'),
(3, 0, "Forty-Love", 'player1', 'player2'),
(0, 3, "Love-Forty", 'player1', 'player2'),
(4, 0, "Win for player1", 'player1', 'player2'),
(0, 4, "Win for player2", 'player1', 'player2'),
(2, 1, "Thirty-Fifteen", 'player1', 'player2'),
(1, 2, "Fifteen-Thirty", 'player1', 'player2'),
(3, 1, "Forty-Fifteen", 'player1', 'player2'),
(1, 3, "Fifteen-Forty", 'player1', 'player2'),
(4, 1, "Win for player1", 'player1', 'player2'),
(1, 4, "Win for player2", 'player1', 'player2'),
(3, 2, "Forty-Thirty", 'player1', 'player2'),
(2, 3, "Thirty-Forty", 'player1', 'player2'),
(4, 2, "Win for player1", 'player1', 'player2'),
(2, 4, "Win for player2", 'player1', 'player2'),
(4, 3, "Advantage player1", 'player1', 'player2'),
(3, 4, "Advantage player2", 'player1', 'player2'),
(5, 4, "Advantage player1", 'player1', 'player2'),
(4, 5, "Advantage player2", 'player1', 'player2'),
(15, 14, "Advantage player1", 'player1', 'player2'),
(14, 15, "Advantage player2", 'player1', 'player2'),
(6, 4, 'Win for player1', 'player1', 'player2'),
(4, 6, 'Win for player2', 'player1', 'player2'),
(16, 14, 'Win for player1', 'player1', 'player2'),
(14, 16, 'Win for player2', 'player1', 'player2'),
(6, 4, 'Win for One', 'One', 'player2'),
(4, 6, 'Win for Two', 'player1', 'Two'),
(6, 5, 'Advantage One', 'One', 'player2'),
(5, 6, 'Advantage Two', 'player1', 'Two')
])
@pytest.mark.parametrize('p1Points p2Points score p1Name p2Name'.split(), test_cases)
def test_get_score(self, p1Points, p2Points, score, p1Name, p2Name):
game = TennisGame(p1Name, p2Name)
for i in range(p1Points):

View File

@ -0,0 +1,66 @@
import unittest
from tennis import TennisGame
test_cases = [
(0, 0, "Love-All", 'player1', 'player2'),
(1, 1, "Fifteen-All", 'player1', 'player2'),
(2, 2, "Thirty-All", 'player1', 'player2'),
(3, 3, "Forty-All", 'player1', 'player2'),
(4, 4, "Deuce", 'player1', 'player2'),
(1, 0, "Fifteen-Love", 'player1', 'player2'),
(0, 1, "Love-Fifteen", 'player1', 'player2'),
(2, 0, "Thirty-Love", 'player1', 'player2'),
(0, 2, "Love-Thirty", 'player1', 'player2'),
(3, 0, "Forty-Love", 'player1', 'player2'),
(0, 3, "Love-Forty", 'player1', 'player2'),
(4, 0, "Win for player1", 'player1', 'player2'),
(0, 4, "Win for player2", 'player1', 'player2'),
(2, 1, "Thirty-Fifteen", 'player1', 'player2'),
(1, 2, "Fifteen-Thirty", 'player1', 'player2'),
(3, 1, "Forty-Fifteen", 'player1', 'player2'),
(1, 3, "Fifteen-Forty", 'player1', 'player2'),
(4, 1, "Win for player1", 'player1', 'player2'),
(1, 4, "Win for player2", 'player1', 'player2'),
(3, 2, "Forty-Thirty", 'player1', 'player2'),
(2, 3, "Thirty-Forty", 'player1', 'player2'),
(4, 2, "Win for player1", 'player1', 'player2'),
(2, 4, "Win for player2", 'player1', 'player2'),
(4, 3, "Advantage player1", 'player1', 'player2'),
(3, 4, "Advantage player2", 'player1', 'player2'),
(5, 4, "Advantage player1", 'player1', 'player2'),
(4, 5, "Advantage player2", 'player1', 'player2'),
(15, 14, "Advantage player1", 'player1', 'player2'),
(14, 15, "Advantage player2", 'player1', 'player2'),
(6, 4, 'Win for player1', 'player1', 'player2'),
(4, 6, 'Win for player2', 'player1', 'player2'),
(16, 14, 'Win for player1', 'player1', 'player2'),
(14, 16, 'Win for player2', 'player1', 'player2'),
(6, 4, 'Win for One', 'One', 'player2'),
(4, 6, 'Win for Two', 'player1', 'Two'),
(6, 5, 'Advantage One', 'One', 'player2'),
(5, 6, 'Advantage Two', 'player1', 'Two'),
]
class TestTennis(unittest.TestCase):
def test_Score(self):
for testcase in test_cases:
(p1Points, p2Points, score, p1Name, p2Name) = testcase
game = TennisGame(p1Name, p2Name)
for i in range(p1Points):
game.won_point(p1Name)
for i in range(p2Points):
game.won_point(p2Name)
self.assertEquals(score, game.score())
if __name__ == "__main__":
unittest.main()