我想检查是否使用正确的错误列表调用了以下方法。
void ShowErrorCollection(string description, List<string> errors);
我的虚拟配置看起来像这样,我试图将给定的列表保存到lokal字段:
A.CallTo(() => dataPresenter.ShowErrorCollection(A<string>.Ignored, A<List<string>>.Ignored))
.Invokes((string _, List<string> givenErrors) => this.errors = givenErrors);
这不起作用。错误集合总是空的,我没有收集。我做错了什么?
修改
好吧,这似乎是我的代码中的一个错误。我写下了以下测试,它是绿色的:
[Test]
public void name()
{
var errorHandler = A.Fake<IErrorHandler>();
A.CallTo(() => errorHandler.ShowErrorCollection(A<string>.Ignored, A<List<string>>.Ignored))
.Invokes((string _, List<string> givenErrors) => this.errors = givenErrors);
errorHandler.ShowErrorCollection("bla", new List<string>() {"Hallo"});
this.errors.Should().NotBeEmpty();
this.errors.First().Should().Be("Hallo");
}
答案 0 :(得分:0)
有同样的问题,这似乎是执行的顺序。
Invokes不支持OOO,这意味着你需要坚持AAA才能真正发挥作用。
安排:使用Invokes配置假。 行动:触发CallTo正在评估的任何内容。