假装简单:Invoke不起作用
本文关键字:不起作用 Invoke 简单 假装 | 更新日期: 2023-09-27 18:13:36
我想检查下面的方法是否调用了正确的错误列表。
void ShowErrorCollection(string description, List<string> errors);
我的fake it easy配置看起来像这样,我试图将给定的列表保存到本地字段:
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");
}
有同样的问题,这似乎是一个执行顺序的事情。
invoke不支持OOO,这意味着您需要坚持AAA才能真正工作。
Arrange: configure fake with invoke。