我有一个使用套接字进行测试的 TestCase。即使在出现错误的情况下,您也应该始终关闭套接字,因此我创建了一个抽象套接字的上下文管理器类。
测试夹具如下所示,其中MyClassToTest
要测试的实际类在内部使用套接字设备。
with SocketContextManager() as device:
foo = MyClassToTest(device)
# make tests with foo
我想避免在每个测试夹具中重复这两行,但始终放在setUp
. 但是我该怎么做呢?以下代码
def setUp(self):
with SocketContextManager() as device:
self.foo = MyClassToTest(device)
不起作用,因为设备将在结束时关闭setUp
。有没有办法像这样处理上下文管理器的实例化,还是我必须在每个测试夹具中重复它?