Nic*_*ick 2 c# nunit equality func
平等比较如何适用于Func?我已将问题的复杂性降低到这些单元测试:
[Test]
public void Will_Pass()
{
Func<string> func = () => "key";
Assert.That(func, Is.EqualTo(func));
}
[Test]
public void Will_Fail()
{
Func<string> funcA = () => "key";
Func<string> funcB = () => "key";
Assert.That(funcA, Is.EqualTo(funcB));
}
Run Code Online (Sandbox Code Playgroud)
我需要测试 - 并成功断言 - a的一个实例Func等于另一个实例.所以我基本上需要一种方法来使失败测试通过.
有没有办法在不创建自定义类型和覆盖的情况下执行此操作Equals()?
你的失败测试不应该通过.就.NET中的任何内容而言,它们的功能并不相同 - 至少在当前的Microsoft C#编译器实现方面.代表将引用单独生成的方法(通过查看IL可以轻松验证.)语言规范允许它们相等,但不需要它,我不知道任何实现可以执行此操作.
代表的平等比较基本上由(对于单一行动代表)组成:
您的测试中第一个条件是假的.