我正在编写一个Python库来访问Ubuntu One的REST API。 (是的,我知道一个已经存在;这是一个划伤我的痒和学习的项目。)
该库将是围绕REST调用的相对较薄的包装器。我希望能够对我的库进行单元测试,而根本不打U1。实现这一目标的最佳实践标准是什么?
目前,每个REST调用都是一个显式的http请求。我无法看到如何模拟出来,但是如果我创建一个(可模拟的)UbuntuOneRESTAPI类隐藏那些http调用,我怀疑它最终会包含包装器库的大多数功能,这会破坏目的。
答案 0 :(得分:1)
您的切入点是HTTP请求。
编写一个模拟库,拦截HTTP请求的发送。而不是发送它们,将它们转换为String并分析它们以测试发送代码。
要接收代码,请模拟响应处理程序。在String中保存REST服务器的良好响应,并从中创建HTTP响应对象以测试接收器。
编写一些针对真实事件创建这些请求的测试用例,以便您可以快速验证请求/响应是否正常。