我希望单元测试断言函数中的变量action
正在被设置为其预期值,唯一使用此变量的时间是在调用库时将其传递给库时。
Class Monolith(object):
def foo(self, raw_event):
action = # ... Parse Event
# Middle of function
lib.event.Event(METADATA, action)
# Continue on to use the build event.
我的想法是我可以模拟lib.event.Event
,得到它的输入参数并断言它们具有特定的值。
>;这不是模拟的工作方式吗?模拟文档的不一致性、半个示例和大量与我想做的事情无关的示例使我感到沮丧。
您可以使用patch decorator,然后对模拟对象调用
assert_called_with
,如下所示:如果您有这种结构:
而
example.py
的内容是:而
lib/event.py
的内容是:tests.py
的代码应该如下:如果你想直接访问参数,这个怎么样?不过有点多余。。。 见https://docs.python.org/3.6/library/unittest.mock.html#unittest.mock.call.call_list
也可以使用^{} 或^{} 。
一个简单的例子如下:
我只是很快为可能需要它的人写了这个例子-我没有实际测试过,所以可能有一些小错误。
相关问题 更多 >
编程相关推荐