1
我有以下方法:模拟方法属性蟒蛇抛出AttributionError
def get_countries(cities):
prefix = os.getenv("PREFIX")
...
...
我想嘲笑这个前缀属性(因为我没有找到一个方法来嘲笑在os.getenv("PREFIX")
和@mock.patch.dict(os.environ, {"PREFIX": "P"})
只需一个键 - 会嘲笑整个字典,而且有可能是我想保留其他键
所以我写了以下内容:
@mock.patch.object("get_countries", "prefix", "P")
def test_get_aggregated_performance_records_countries_min_spend():
...
我得到一个n错误:
AttributeError: get_countries does not have the attribute 'prefix'
我在做什么错?
我更喜欢使用模拟,而不是修改我的测试代码。有没有办法模拟函数作用域变量? 关于os env的问题 - 这意味着我们需要维护这个补丁,如果我们计划在未来使用更多的sys env,在其他情况下,它们的值不会影响测试。 – Dejell