Python-在单元测试中返回异常

时间:2018-09-13 16:18:05

标签: python unit-testing tdd

我开始学习TDD,并获得了保龄球游戏kata作为练习。 我已经完成了一些常规的分数测试,但是我想增加一些练习的机会,一个想法是如果我输一个负数,就会引发一个例外。

孔代码不相关,因为这是一个简单的验证

class BowlingGame(object):
    def __init__(self):
        pass
    def roll(self, pins):
        if pins < 0:
            #Want to Return Value Exception

class BowlingGameTest(unittest.TestCase):
    def setUp(self):
        self._game = BowlingGame()
    def test_roll_negative(self):
        self.game.roll(-1)
        #Want to catch exception here with self.assert or except

问题是,如果我返回例如0/0,则在BowlingGame类而不是BowlingGameTest类(存在两个不同的文件)中引发异常。

如果我对return ValueError(BowlingGameTest类)进行self.assertRaises(ValueError):(BowlingGame类),我会得到AssertionError: ValueError not raised

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

类似的东西..

try:
    self.game.roll(-1)
except ValueError:
    pass