如何测试包装外部REST服务的Python库(不真实调用服务)

1 投票
1 回答
610 浏览
提问于 2025-04-17 05:21

我正在写一个Python库,用来访问Ubuntu One的REST API。(是的,我知道已经有一个这样的库了;这个项目是为了满足我的需求,同时学习一些东西。)

这个库会比较简单,主要是对REST调用的一个封装。我希望能够对我的库进行单元测试,而不需要真的去访问Ubuntu One。请问有什么好的方法可以做到这一点呢?

目前每个REST调用都是一个明确的HTTP请求。我不知道怎么去模拟这个请求,但如果我创建一个可以模拟的UbuntuOneRESTAPI类,把这些HTTP调用隐藏起来,我担心这样会把大部分封装库的功能都包含进去,这样就失去了我最初的目的。

1 个回答

1

你的关键点在于HTTP请求。

写一个模拟库,拦截HTTP请求的发送。不要直接发送请求,而是把它们转换成字符串,然后分析这些字符串,以测试发送代码。

对于接收代码,模拟响应处理程序。把从REST服务器得到的一个好的响应保存为字符串,然后从这个字符串创建HTTP响应对象,以测试你的接收器。

写几个测试案例,针对真实的请求进行测试,这样你就可以快速验证请求和响应是否正常。

撰写回答