我正在构建一个在 docker 容器中运行并使用 Python 3 Flask 并由 MongoDB 通过 PyMongo 库支持的 RESTful API。我想向 API 添加单元测试,当我进行 git commit(在 CI/CD 管道中)时,我可以运行这些测试。API 大多只允许创建、获取、列出、修改和删除数据库中的对象。我希望我的测试调用这些端点并检查响应是否有意义。推荐的模式是什么?
MockupDB似乎允许我在 Python 容器中伪造 MongoDB 服务器,但是对来自 MongoDB 的所有响应进行编程似乎过于复杂。
我可以修改我的数据类来做例如:
test_dictionary = {}
def get(identifier):
if is_test:
return test_dictionary.get(identifier, None)
return database.find_one({'_id': identifier})
但这会减少我的覆盖面。
我可以有一个单独的 Dockerfile 用于测试,其中包括 MongoDB 服务器和 Python。然后将我的 PyMongo 连接指向测试 Dockerfile 中的本地服务器,以及普通 Dockerfile 容器外的服务器。这意味着我不再在同一个环境中进行测试。
也许我可以使用 Python unittest.mock模块?
或者这些测试更适合在部署容器后运行?
我认为Flask 测试文档让我到目前为止,但没有描述如何处理数据库连接。
温温酱
相关分类