使用Mockito为Python嘲笑可可的对象



我具有表单的函数:

def my_function(arg):
    f = get_anonymous_function(arg)
    return f()

我想用py.testmockito中测试此功能。

所以我写下测试如下:

def test_my_function(when):
    arg = mock()
    f = mock()
    when(my_module).get_anonymous_function(arg).thenReturn(f)
    expected = mock()
    when(f).thenReturn(expected)
    actual = my_module.my_function(arg)
    assert expected == actual

当我进行这样的测试时,actualNone。如果我将when更改为when2,Mockito抱怨TypeError: can't guess origin of 'f'.

我的临时解决方案是使用f = lambda: return expected,然后跳过第二个when。这有效,但感觉不太正确。有更好的方法吗?

ps:"不要使用Mockito"并不是我要寻找的答案。同样,"写my_function更好"也不是一种选择,因为使用外部软件包时通常会出现这种情况。

弄清楚了。从文档(已纠正错别字(中:

模拟默认情况下是可可。使用可可的行为配置 时间:

dummy = mock()
when(dummy).__call__(1).thenReturn(2)

相关内容

  • 没有找到相关文章

最新更新