c# - 如何使用 FakeItEasy 框架测试 Func<T> 是否已被调用?

标签 c# func fakeiteasy

如何使用 FakeItEasy 框架检查是否已调用 Func?

例子:

Func<bool> myFunc = () => true;

// Unfortunately this fails:
A.CallTo(myFunc.Invoke()).MustHaveHappened();

最佳答案

假设您将 Func 提供给被测代码,您可以这样做。您只需像使用任何其他类型一样从中制作一个 Fake 即可。
它看起来像这样。

public class Foo {
  public bool Bar(Func<bool> fn) {
    return fn();
  }
}

[Test]
public void Should_call_fn() {
  var fn = A.Fake<Func<bool>>();

  (new Foo()).Bar(fn);

  A.CallTo(() => fn.Invoke()).MustHaveHappened();
}

关于c# - 如何使用 FakeItEasy 框架测试 Func<T> 是否已被调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20399498/

相关文章:

c# - 如何区分outlook 2010中的内联图片和附件[C#]

c# - 如何从asp.net中动态生成的复选框列表中获取复选框值

c# - 这个C#函数组合方法是如何工作的?

c# - 按任何属性对列表进行排序的更好方法

fakeiteasy - 如何指定伪造属性时要使用的类?

c# - ReadAsAsync-错误 : "Type is an interface or abstract class and cannot be instantiated."

c# - 减少构造函数样板代码

c# - 反射 MemberInfo 到 Func<T1, T2>

c# - 使用 FakeItEasy,有没有办法伪造只写属性的 setter ?

unit-testing - FakeItEasy DbSet/IQueryable<T> - Entity Framework 6