在整个项目中模拟函数
我想模拟整个项目中实用程序模块中的某个函数,作为测试的一部分套房。我当然可以为每个使用它的模块修补和模拟这个函数,但是这样的函数有很多,而且它会不健壮且乏味。
有没有办法在整个项目中修补\模拟它?
如果我在任何其他模块导入它之前在实用程序模块中修补并模拟它,那么会导入该函数还是模拟?
I would like to mock a certain function in a utility module throughout my project, as part of a testing suite. I could of course patch and mock this function for each module using it, but there are a lot of these and it would be non-robust and tedious.
Is there a way to patch\mock it throughout the project?
If I patch and mock it in the utility module before any other module imports it, would the function be imported or the mock?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
当然,只需在脚本中导入模块,对其进行修补,然后导入使用它的其他模块并调用您需要在其中测试的任何模块。模块在一个会话中仅导入一次;其他
import
语句使用已导入的模块。因此导入补丁模块的其他模块将自动获取补丁。Sure, just
import module
in your script, patch it, then import the other modules that use it and invoke whatever you need to test in them. Modules are imported only once in a session; additionalimport
statements use the already-imported module. So the other modules that import the patched module will automatically get the patches.