gpt4 book ai didi

python - py.test fixture 创建最佳实践

转载 作者:行者123 更新时间:2023-12-01 04:16:08 25 4
gpt4 key购买 nike

我对单元测试和 py.test 相当陌生。

我对测试有疑问。我需要格式化来自网络服务的数据。这些数据(xml、json 或其他)需要进行处理,某些部分需要提取并作为内置 python 类型(列表、字典、集合...)返回。

如果我需要创建一个测试方法来检查数据是否格式良好,我是否需要使用直接来自网络服务的固定装置,或者我是否需要根据从 Web 服务提供的数据表示来创建固定装置网络服务?

例如:

测试.py

def test_well_formated_data(the_fixture):
assert isintance(formatting_method(the_fixture), list)
# and other assertion...

conftests.py

@pytest.fixture
def the_fixture()
return Webservices.connect()

或者表示:

@pytest.fixture
def the_fixture()
# Here is the same string returned by the webservices
# each time it's called
return "{'foo': [ 'bar', 'spam', 'egg']}"

在我读过的一些书籍或教程中,目的是检查输入是否按预期处理和返回。对于输入,当前数据的“快照”就足够了。

那么,我是否应该从“不可变”数据创建固定装置,而不知道网络服务发送的已更改数据,或者我是否需要创建固定装置,在这种情况下,该固定装置最接近现实,但存在风险过于依赖外部行为(例如 404、500 错误)?

提前致谢。

最佳答案

通常,您不会针对外部服务进行测试,而是确保您自己的应用程序在处理和处理方面是正确的。

就您的情况而言,您可以猴子修补网络服务(即实现一个返回一些数据片段的虚拟程序)并测试您的代码是否按预期处理它们。

关于python - py.test fixture 创建最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34287317/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com