设置doublex spy,在每次调用中返回不同的值

2024-05-14 15:26:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在我们的代码库中测试对请求重试的处理。为此,我想定义一个spy,它为同一个调用返回不同的值。我正在使用doublex和{a2}进行测试:

这是一个工作测试用例,用于单个调用:

import pytest
from doublex import Spy, assert_that, ANY_ARG, is_


@pytest.mark.unit
def test__me():

    with Spy() as spy:
        spy.foo(ANY_ARG).returns(10)

    assert_that(spy.foo(), is_(10))

重试将通过执行完全相同的调用来执行(即,使用相同的参数),但将返回不同的值。它可能与此类似(这不起作用):

^{pr2}$

如何设置一个每次调用都返回不同值的间谍程序?在


Tags: 代码importa2that定义foopytestis
1条回答
网友
1楼 · 发布于 2024-05-14 15:26:35

您可以使用^{}代替.returns()

with Stub() as stub:
    stub.foo().delegates([1, 2, 3])

assert_that(stub.foo(), is_(1))
assert_that(stub.foo(), is_(2))
assert_that(stub.foo(), is_(3))

请注意,上面第四次调用stub.foo()将引发{}。为了避免这种情况,可以将函数而不是列表传递给.delegates()。在

相关问题 更多 >

    热门问题