假装简单: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不起作用

有同样的问题,这似乎是一个执行顺序的事情。

invoke不支持OOO,这意味着您需要坚持AAA才能真正工作。

Arrange: configure fake with invoke。