python - 如何“忽略”使用 Python-Mockito 的方法?
问题描述
我是单元测试和 mockito 库的新手,我试图弄清楚如何在方法调用中“跳过”或“忽略”类实例化。我有一些看起来像这样的代码:
def main(args):
...
...
notify = Notify(some_variables)
...
try:
...
...
except Exceptions as err:
notify.alert(some_variables)
我尝试像这样模拟这种方法:
notice_mock = mock()
when(notify).Notify(some_variables).thenReturn(notice_mock)
但是,它仍然实例化了该类,并且由于该类中的其他方法调用而引发错误。我是否误解了 mock() 的功能?有没有办法忽略这个方法?
解决方案
这是一个关于“在哪里”模拟的问题。被测代码Notify(...)
在def main
. 假设您可能在一个文件中有这个foo.py
。
在测试期间,您实际上是在模拟notify.Notify(...)
( when(<object/container>).<name/member>(...)
),但被测代码使用 foo.Notify
.
您可能在测试文件中有import foo as system_under_test
一行或类似的内容。然后一个when(system_under_test).Notify(...)
应该做补丁。
推荐阅读
- powershell - 如何在跳过正在使用的 VHD 时自动复制 VHD?
- reactjs - 如何防止重新渲染 react-router-dom Link 组件?
- c# - 为什么不能创建静态类的对象?静态类包含哪个构造函数?
- amazon-web-services - 如何从 CloudWatch Logs Insights 获取用户登录持续时间
- python - 仅在 html 中显示最后一条记录
- python - 使用 pytrend 按国家/地区获取 2019 年的总体趋势
- mongodb - 每个文档的mongodb不同的TTL
- asp.net-core - asp.net 核心 mvc 。有两个(索引)方法同名错误
- vim - `:!mutt -f some.mbox` 适用于 Vim 8.1,但在 NeoVim 0.3.1 中返回 `No recipients specified`
- python - 自定义解释器提示后python解释器中的错误缩进