我有一个异步处理程序,用"stream_body" decorator包装,用于接收大文件并逐步读取它们,类似于this example。但是,我不明白,如何在unittest中测试此功能,因为这需要异步客户端。
答案 0 :(得分:1)
您可以在客户端中测试使用stream_request_body
而没有任何特殊功能的处理程序。例如,this test in Tornado itself使用普通请求测试stream_request_body
处理程序(恰好与AsyncHTTPClient一起发送,因为AsyncHTTPTestCase是如何处理的,但它原则上可以通过同步来完成客户在另一个线程中。)
如果要测试处理程序的流属性,则可能需要更灵活的客户端。例如,AsyncHTTPClient
中的a test that uses body_producer
可以控制发送块,而无需尽快上传所有内容。