嘲弄__

2024-05-13 23:31:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望通过测试确保: -无法导入应用程序 -应用程序可以作为一个真正的应用程序启动(例如:pythonsrc.py公司)在

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

在src.py公司在

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

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

在测试.py(片段)

^{pr2}$

此测试失败。。。为什么?在


Tags: namepyselfsrc应用程序ifismain
2条回答

因为导入时模块的名称是src,而不是{}。在

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

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

if __name__ == '__main__':
    main()

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

^{pr2}$

要测试模块是否不可导入,您不需要使用模拟。在

^{}。在

只需检查导入od模块是否抛出错误。在

with self.assertRaises(...):
    ...

相关问题 更多 >