Python中的测试用例冲突
我对Python测试相当陌生,遇到了一些我不理解的奇怪行为 我已经模拟了类Python中的测试用例冲突,python,unit-testing,mocking,Python,Unit Testing,Mocking,我对Python测试相当陌生,遇到了一些我不理解的奇怪行为 我已经模拟了类MockedClass,我在两个测试类中使用它,就像这样(两个类都在同一个文件中): 头等舱: class TestClass1(unittest.TestCase): def setUp(self): self.mocked_object_1 = MockedClass() 二等舱: class TestClass2(unittest.TestCase): def setUp(sel
MockedClass
,我在两个测试类中使用它,就像这样(两个类都在同一个文件中):
头等舱:
class TestClass1(unittest.TestCase):
def setUp(self):
self.mocked_object_1 = MockedClass()
二等舱:
class TestClass2(unittest.TestCase):
def setUp(self):
self.mocked_object_2 = MockedClass()
模拟对象作为参数传递给测试函数。现在发生的情况是,当这两个测试分别运行(在不同的文件中)时,这些类中的所有测试都成功,但当它们都在同一个文件中运行时,TestClass2
中的所有测试用例都失败
我通过声明globaltemp\u mock\u object
并执行以下操作,设法解决了这个问题:
class TestClass1(unittest.TestCase):
def setUp(self):
temp_mocked_object = self.mocked_object_1
self.mocked_object_1 = MockedClass()
def tearDown(self):
self.mocked_object_1 = temp_mocked_object
但我不明白为什么会出现这个问题,更不明白这个解决方案为什么有效。最让我困惑的是,尽管模拟对象的名称不同,第二次测试还是失败了
模拟类的结构如下:
class MockedClass(someScript.OriginalClass):
def __init__(self):
# some unimportant objects are initialized here
我使用的是较旧的Python版本(2.7),但我认为这并不重要
因此,我非常希望能对这里发生的事情做出某种解释,因为我在别处找不到答案