gpt4 book ai didi

python - 用扭曲的延迟测试

转载 作者:太空宇宙 更新时间:2023-11-03 10:47:24 25 4
gpt4 key购买 nike

我一直在努力用 deferred 和 deferred 一般测试扭曲代码。

我认为我有一个简单的测试应该会失败。

根据我在 Twisted 的测试工具 Trial 中的理解,我应该能够返回一个延迟的,当它完成时,测试将结束。

这是我的代码花絮,也许有人可以提供帮助。

import unittest, time

from twisted.internet import reactor, defer

class MyTest(unittest.TestCase):

def test_simple_deferred(self):

print "\nStarting Test"

my_deferred = defer.Deferred()

def print_time():
print time.time()
self.assertTrue(False)

my_deferred.addCallback(print_time)

reactor.callLater(3, my_deferred.callback)

print time.time()

return my_deferred

提前致谢,我看过很多例子,但我想我已经到了这样的地步,我已经看这个太久了。

最佳答案

你有两个问题。

首先,要获得特殊的延迟处理,您的测试用例需要继承自 twisted.trial.unittest.TestCase,而不是 python 标准库版本。

最后,您没有正确调用 reactor.callLater,或者您没有为 Deferred.callback() 提供正确的参数;您需要给 deferred 一个。如果您不关心它是什么,请给它一个 None。同样,回调需要接受那个参数;您可以安全地忽略它。

from twisted.trial import unittest
#^^^^^^^^^^^^^^^^^
import time

from twisted.internet import defer
from twisted.internet import reactor

class MyTest(unittest.TestCase):

def test_simple_deferred(self):

print "\nStarting Test"

my_deferred = defer.Deferred()

def print_time(dont_care):
# ^^^^^^^^^
print time.time()
self.assertTrue(False)

my_deferred.addCallback(print_time)

reactor.callLater(3, my_deferred.callback, None)
# ^^^^^^
print time.time()

return my_deferred

关于python - 用扭曲的延迟测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23838096/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com