当我尝试使用setUpClass方法时,它会给出以下代码中不存在_cleanups属性的错误
@classmethod
def setUpClass(self):
self.argv = ['installation_tool.py']
argv_patcher = patch.object(sys, 'argv', self.argv)
self.addCleanup(self, argv_patcher.stop)
self.argv_mock = argv_patcher.start()
self.all_bears = get_all_bears_names_from_PyPI()
但是,当我使用setUp方法时,它工作正常,我可以在其他方法中添加self.argv + = [asd,asda,asd]等参数。
def setUp(self):
self.argv = ['installation_tool.py']
argv_patcher = patch.object(sys, 'argv', self.argv)
self.addCleanup(argv_patcher.stop)
self.argv_mock = argv_patcher.start()
self.all_bears = get_all_bears_names_from_PyPI()
我正在尝试在这里测试Main函数,所以我需要嘲笑才能完成。我怎样才能测试主要功能?
我如何使用setUpClass来执行此操作,因为我需要将setUp方法用于其他方法,因为它们有自己的启动调用?
答案 0 :(得分:0)
你正在过去自我' to setUpClass(这是一个类方法)而不是' cls'。你不能在类方法中使用self。如果您需要在其他地方使用setUp(实例方法),也许您可以在不同的测试用例中分离您的测试(因为每个测试用例都可以有自己的setUp方法)并使用您编写的setUp运行测试,这是正确的。同样适用于setUpClass。因此,当您需要定义不同的setUp方法时,您可能想要分割测试用例。