在让·保罗(Jean-Paul),此页面和这个问题的帮助下,我已经能够使用解决问题twisted.internet.task.deferLater()
。总结一下我一直在寻找的要点:如果一个测试方法返回一个延迟,则仅当所有延迟被触发时才调用’tearDown()’方法。
这是代码:
from twisted.trial import unittest
from twisted.internet import reactor, task
class TrialTest1(unittest.TestCase):
def setUp(self):
print("setUp()")
def test_main(self):
print("test_main()")
return task.deferLater(reactor, 1, self._called_by_deffered1)
def _called_by_deffered1(self):
print("_called_by_deffered1()")
return task.deferLater(reactor, 1, self._called_by_deffered2)
def _called_by_deffered2(self):
print("_called_by_deffered2()")
def tearDown(self):
print("tearDown()")
输出:
setUp()
test_main()
// (1s wait)
_called_by_deffered1()
// (1s wait)
_called_by_deffered2()
tearDown()