在python中,为什么mock_calls在调试模式下运行时调用.__ str __()调用的次数不一致?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在python中,为什么mock_calls在调试模式下运行时调用.__ str __()调用的次数不一致?相关的知识,希望对你有一定的参考价值。
我创建了一个python测试,我正在模拟日志记录功能。然后我测试以确保loccking_mock.mock_calls的数量是我的预期。
我正在使用pycharm。当我运行代码时,测试通过,但是当我调试它时(在我的assert语句的行中有一个断点),它没有通过,而logging_mock.mock_calls包含许多意外的调用.__ str __()调用。列出的呼叫.__ str __()呼叫的数量每次都不同。
在调试过程中,我注释掉了main方法中的所有功能,但我仍然遇到了这个问题。这是仍然给我这个问题的代码:
@mock.patch('app.helpers.logging')
def test_main(self, logging_mock):
"""
Test the main method
"""
main()
self.assertEqual(0, len(logging_mock.mock_calls))
这是我的空主:
def main():
pass
当我在调试器中运行时,为什么会有不同数量的调用.__ str __()调用?
答案
对你来说可能为时已晚,但对于其他任何绊倒的人来说。调试器中的某些东西是在应用程序中的日志对象上调用字符串,这被模拟为call()。str()。我也看到了这个我忘记在模拟上正确设置return_value并记录模拟调用的输出的地方。
以上是关于在python中,为什么mock_calls在调试模式下运行时调用.__ str __()调用的次数不一致?的主要内容,如果未能解决你的问题,请参考以下文章