【发布时间】:2013-02-05 21:48:53
【问题描述】:
我正在开发一个流行 API 的客户端库。目前,我对所述客户端的所有单元测试都是针对测试帐户进行实际 API 调用。
这是一个例子:
def test_get_foo_settings(self):
client = MyCustomClient(token, account)
results = client.get_foo_settings()
assert_is(type(results), list)
我想停止对我的测试帐户进行实际的 API 调用。
我应该如何解决这个问题?我应该使用Mock 来模拟对客户端的调用和响应吗?
此外,我对使用此客户端库进行测试的理念感到困惑。我对测试实际的 API 不感兴趣,但是当涉及到不同的因素时,比如被调用的方法、可能的返回结果的排列等等 - 我不确定我应该测试什么和/或什么时候可以安全做出假设(例如模拟响应)。
任何关于如何在我的场景类型中使用 Mock 的指导和/或示例将不胜感激。
【问题讨论】:
-
我刚刚了解到一个有趣的测试模块,叫做
fudge,你可以去看看。
标签: python unit-testing mocking