【发布时间】:2010-03-22 12:01:53
【问题描述】:
我有一个类,其中包含一个方法,该方法返回一个包含 Func 类型属性的 Result 对象。
class Result {
public Func<Result> NextAction { get; set; }
}
如何编写有关此 Func 内容的单元测试断言?以下显然不起作用,因为编译器为 lambda 生成了两种不同的方法:
// Arrange
ListController controller = new ListController(domain);
// Act
Result actual = controller.DefaultAction();
// Assert
Func<Result> expected = () => new ProductsController(domain).ListAction();
Assert.That(actual.NextAction, Is.EqualTo(expected));
我猜我可以通过使用表达式树来做到这一点,但是......有没有办法避免这样做?我正在使用 NUnit 2.5。
编辑: Result 对象中没有其他标识字段。它旨在成为一种基于当前对象/方法中做出的决定调用下一个对象/方法的方式。
【问题讨论】:
标签: c# unit-testing lambda