gpt4 book ai didi

python - mock __main__

转载 作者:太空宇宙 更新时间:2023-11-03 17:54:59 25 4
gpt4 key购买 nike

我想通过测试确保:- 应用程序无法导入- 该应用程序可以作为真实应用程序启动(即:python src.py)

我对此很感兴趣,为什么以下不起作用:

src.py

class A:
def x(self):
print('this is x')

if __name__ == '__main__':
A().x()

test.py(片段)

class Test(unittest.TestCase):
@mock.patch('src.A.x')
def test_main(self, mock_x):
import src
mock_x.assert_any_call()

此测试失败...为什么?

最佳答案

因为导入时模块的名称是src,而不是__main__

最简单的解决方案是将代码移至函数中:

def main():
A().x()

if __name__ == '__main__':
main()

在您的测试中,您将调用src.main()

@mock.patch('src.A.x')
def test_main(self, mock_x):
import src
src.main()
mock_x.assert_any_call()

关于python - mock __main__,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28609070/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com