有人可以帮助分解并解释以下方法,以及它与调用它的单元测试有何关系?
static class Class1
{
public static Expression<Func<string>> Method1(Interface1 param1, string param2)
{
return () => param1.Method2(
param2
);
}
}
在单元测试中。 &#39; A&#39;上课是FakeItEasy:
A.CallTo(
Class1.Method1(
instanceOfInterface1,
"someText"
)
).MustHaveHappened();
答案 0 :(得分:1)
该方法的内容实际上与单元测试无关。该测试检查具有这些特定参数Method1
的对象(不同类型)是否称为(instanceOfInterface1, "someText")
。单元测试可能会在MustHaveHappened
检查之前执行一些代码吗?
此方法的结果是一个表达式,它将对Method2
实例上的param1
的调用包装起来,并将param2
作为参数传递。实际上并未调用Method2
。生成的Expression<Func<string>>
对象包含一个表达式树,它允许您以编程方式检查方法的主体。