提问人:Peggy W 提问时间:8/1/2023 最后编辑:Heretic MonkeyPeggy W 更新时间:8/1/2023 访问量:34
我尝试每次使用回调返回不同的结果(来自结果数组)
I'm trying to use callback to return a different result (from an array of results) each time
问:
我正在尝试模拟一个方法,使其每次调用时返回不同的结果。此模拟将在不同的测试中使用,可能的结果数量可能会有所不同。我一直在使用 SetupSequence,但似乎有很多行可能不需要。
例如
MockMethod(result1, result2, ... resultN)
setup...
.Returns(result1),
.Returns(result2),
...
.Returns(resultN);
(这确实有效,但哇,我绝对不应该以这种方式这样做)
我正在尝试使用回调,以便它递增并从数组返回结果。 例如
MockMethod(string[] result)
int callNumber = 0;
Setup...
.Callback(() => callNumber++)
.ReturnsAsync(() => result[callNumber]);
但它每次都会返回第一个结果。(我确实意识到如果它要在第一次返回之前递增,我需要初始化为 -1,但无论如何它似乎都没有递增。模拟在运行正在测试的方法之前正在初始化,所以我认为这就是它只返回第一个结果的原因。如果没有一堆返回线,我想不出另一种方法来做到这一点。任何人都有任何想法。
我也先尝试了返回,但结果相同...... 例如
MockMethod(string[] result)
int callNumber = 0;
Setup...
.Returns(result[callNumber]);
.Callback(() => callNumber++)
答: 暂无答案
评论