【发布时间】:2012-12-14 08:11:38
【问题描述】:
我有一个使用套接字进行测试的 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 结束时关闭。有没有办法像这样处理上下文管理器的实例化,还是我必须在每个测试夹具中重复它?
【问题讨论】:
标签: python unit-testing with-statement