我需要做以下测试:
Selenium不适合这种情况:它无法监听连接,我也可以发送没有Selenium的GET。
所以,我做了一个单元测试:
class MobiMoneyTestCase(TestCase):
def test_can_send_response(self):
resp = requests.post('http://url/api/', data={'callback': 'http://localhost:8000'})
class Handler(SimpleHTTPRequestHandler):
def do_GET(self):
assert self.path == '...'
httpd = SocketServer.ThreadingTCPServer(('localhost', 8000),Handler)
测试必须等待5秒才能发出POST请求,然后如果没有任何反应则失败。如何在测试中合并这些项目?如果我将sleep(5)
放入test_can...
,则httpd
处理程序在倒计时结束前不会回复。
答案 0 :(得分:-1)
基本上,如果过程太长,你想要超时吗?在这种情况下,您应该检查信号模块。
这里有一个简洁的实现(带有装饰器):Timeout function if it takes too long to finish