Python 有人能解释一下这个扭曲的单元测试吗?
我只是继承了一些关于TwistedPython的单元测试,如下所示 虽然测试有效,但我在概念上不理解它 给出下面的例子,有人能解释一下吗Python 有人能解释一下这个扭曲的单元测试吗?,python,twisted.web,Python,Twisted.web,我只是继承了一些关于TwistedPython的单元测试,如下所示 虽然测试有效,但我在概念上不理解它 给出下面的例子,有人能解释一下吗 为什么这个单元测试“返回页” 为什么没有任何对reactor.start()的调用 关于这个方法的优点和缺点,还有其他我可以考虑的吗? 为什么这个单元测试“返回页” 嗯,不太干净。Twisted的试用单元测试预期结果为延迟,断言为回调。这里的回调是printResult,因此对于任何非空字符串,它都将被计算为true。我认为更恰当的做法应该是: page
- 为什么这个单元测试“返回页”
- 为什么没有任何对reactor.start()的调用 关于这个方法的优点和缺点,还有其他我可以考虑的吗?
为什么这个单元测试“返回页” 嗯,不太干净。Twisted的试用单元测试预期结果为延迟,断言为回调。这里的回调是
printResult
,因此对于任何非空字符串,它都将被计算为true。我认为更恰当的做法应该是:
page = getPage(url, method='POST').addCallback(self.assertTrue)
或
为什么没有任何对reactor.start()的调用
因为TestCase
类会处理这个问题。而且它也没有使用标准反应堆
由于单元测试避免了真实的I/O和实时性,它们通常可以
避免使用真正的反应堆。唯一的例外是单元测试
对于真正的反应堆实现。协议的单元测试
实现或其他应用程序代码不应使用反应器。
实际反应堆实施的单元测试不应使用全局
反应堆,但应改为使用
twisted.internet.test.reactormixins.ReactorBuilder,以便
自动应用于所有反应堆实施。没有
如果新的单元测试使用全局反应堆,则为case
page = getPage(url, method='POST').addCallback(self.assertTrue)
page = getPage(url, method='POST').addCallback(self.assertIsNotNone)