如何编写单元测试来验证一个python实例方法以正确的顺序调用其他几个实例方法?

时间:2016-12-16 01:45:52

标签: python unit-testing

class Example:
    def __init__(self, data):
        self.data = data

    def _RunPhase1(self):
        for d in data:
            d = d * 3

    def _RunPhase1(self):
        for d in data:
            d = (d / 2) + 5.0

    def RunProcessingSequence(self):
        self._RunPhase1()
        self._RunPhase2()

请原谅这个示例代码的惯用性。我想知道如何编写一个单元测试,例如方法RunProcessingSequence,它将验证它确实调用了" private"实例方法_RunPhase1和_RunPhase2按此顺序。

我已经尝试过这种方法,但它似乎无法运作:

class TestExample(unittest.TestCase):
    @mock.patch('__main__.Example')
    def test_RunProcessingSequence(self, mock_e):
        e = Example([1, 2, 3])
        mock_e.return_value = e
        e.RunProcessingSequence()
        expected = [e._RunPhase1, e._RunPhase2]
        self.assertTrue(mock_e.call_args_list == expected)

如何更改我的测试代码或我的测试方法,以达到预期的效果?

0 个答案:

没有答案