我正在编写一个非常小的 Python ORM boto.dynamodb.layer2
。我想为它编写测试,但我不希望测试与 AWS 进行实际通信,因为这需要复杂的设置、凭据、网络访问等。
由于我计划开源该模块,因此在源代码中包含凭据似乎是个坏主意,因为我会为使用付费,并且在环境中包含凭据是一种痛苦。
将我的测试与网络耦合似乎是个坏主意,因为它会使测试运行速度变慢,或者可能由于网络错误或限制而导致测试失败。我的目标不是测试 boto 的 DynamoDB 接口或 AWS。我只想测试我自己的代码。
我打算用它unittest2
来编写测试并mock
模拟出网络上的 boto 部分,但我以前从未这样做过,所以我的问题归结为这些:
- 我会以正确的方式解决这个问题吗?
- 有没有其他人这样做过?
boto.dynamodb
界面中是否有最适合模拟的特定点?