扭曲的单元测试客户端 - 服务器交互

问题描述:

在我最新的Python项目中,利用Twisted,我试图善于使用unittest模块。在很高的层面上,我正在构建两个专门用于相互交流的RESTful API。对于大多数请求,我可以使用DummyRequest并根据预期的常量测试呈现的值,并且工作正常。扭曲的单元测试客户端 - 服务器交互

但是,我有一些情况下,设计需要在一台服务器上的请求(其中包括)然后向其他服务器发送请求,但并不真正关心响应。重要的是请求发生。

就像我说过的,我可以在另一侧测试这个功能是否完美,但是我越来越难以确定数据是如何测试的。我的想法而已要么

  • 设置,只是检查是否提出请求并验证输入的虚拟测试服务器 - 似乎片状,太多的精力
  • 建立一个装饰包某些测试并修改urllib.urlopen来报告它何时被调用,我们试图检索,并允许我简单地返回一个已知的结果。

我倾向于第二种选择,因为它似乎更pythonic,但也有点hacky。

想法?

+3

你的问题对我来说有点模糊,你已经有了一个一般的答案。但是,'urllib.urlopen'跳到我身上。这是你如何提出你的要求?如果是这样,你应该改变你的代码部分。 'urllib.urlopen'是一个阻塞呼叫。改用'twisted.web.client'。 – 2012-03-21 12:18:50

Twisted带有自己的单元测试框架,名为Trial。正如你可能想象的那样,它非常适合测试你的网络代码。 Here's a tutorial to start you off.

+0

我知道Trial,但它似乎并没有提供任何出站连接检查功能。我想我可以再看一看。谢谢! – 2012-03-22 03:10:22

我不太了解Twisted或您如何设置您的系统,但是您可以在单个线程上启动两台服务器吗?其中之一就是你正在测试的那个,另一个只是一个可以接受任何请求的假人。除此之外,虚拟机会存储它已收到呼叫的信息。在第一台服务器上启动第二台服务器的操作后,您可以断言第二台服务器已收到请求。