如何在每次调用模拟对象时模拟新的返回值

时间:2017-06-08 18:51:39

标签: python unit-testing mocking

我的代码中有多个re.search,我正在编写单元测试我每次尝试重新搜索时都会尝试返回新值。

来自py文件的

片段:

for line in output.splitlines():
        match = re.search(r'(^.*-\d+\/\d+\/\d+)', line)
        if match:
            sp = match.group(1)
            if sp not in self.data['sess']:
                self.data['sess'][sp] = {}
            continue

单元测试案例:

 @patch('re.search')
 def test_get_sess(selfpatch1):
    match = Values()
    match.group = Mock()
    match.group.side_effect = ['ms','qr', 'uv']
    patch2.return_value = match
    options = {'ss': "ss1" }
    s.get_sess(**options)

我在执行上述代码时看到StopIteration异常。

请让我知道如何解决问题

0 个答案:

没有答案