我正在尝试对解析后包含元素的html解析器进行单元测试。 但是,当我创建类的另一个实例时,它将继承第一个解析器存储的所有元素。
我尝试使用del
或尝试将第一个实例设置为None
。但是他们两个都没有摆脱彼此直接传递的元素。
这是我代码中的简短演示。
class Base:
stack = []
def parse(self):
pass
class Page(Base):
def get(url):
pass
pg = Page()
pg.get(url)
pg.parse()
pg.stack # => [Element(), Element()]
class TestWebPageElements(unittest.TestCase):
def setUp(self):
self.pg = Page()
def tearDown(self):
self.pg = None
def test_parsing(self):
self.pg.get(url)
self.pg.parse()
self.pg.stack # => [Element(), Element()]
class TestWebPageElements2(unittest.TestCase):
def setUp(self):
self.pg = Page()
def tearDown(self):
self.pg = None
def test_parsing(self):
# XXX: Here the stack is already filled why?
self.pg.stack # => [Element(), Element()]
我希望第二个单元测试中的堆栈为空,因为它是一个新对象。但事实并非如此。