在我最新的 Python 项目中,利用 Twisted,我试图善于使用 unittest 模块。在高层次上,我正在构建两个专门设计用于相互通信的 RESTful API。对于大多数请求,我可以只使用 DummyRequest 并根据预期常量测试呈现的值,并且效果很好。
但是,我遇到过一些情况,其中设计需要在一台服务器上发出请求(除其他事项外)然后将请求发送到另一台服务器,但并不真正关心响应。重要的是请求发生了。
就像我说的,我可以在另一端完美地测试该功能,但我对如何测试以确保数据已发送过来感到困惑。到目前为止,我的想法是
- 设置一个虚拟测试服务器,只检查请求是否发出并验证输入 - 看起来不稳定且需要太多努力
- 设置一个装饰器来包装某些测试并修改 urllib.urlopen 以报告它何时被调用,我们试图检索什么,并允许我在那里简单地返回一个已知结果。
我倾向于第二种选择,因为它看起来更 pythonic,但也有点 hacky。
想法?
最佳答案
Twisted 带有自己的单元测试框架,称为 Trial。正如您想象的那样,它非常适合测试您的网络代码。 Here's a tutorial to start you off.
关于python - Twisted 中的单元测试客户端-服务器交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9798910/