如何为 Linq 查询设置 Expectation

How to set Expectation for Linq query

使用 Rhino Mocks:

var list = MockRepository.GenerateMock<List<Foo>>();
list.Expect(e => e.Any(Arg<Func<Foo, bool>>.Is.Anything)).Return(false);

它抛出

ArgumentNullException: Value cannot be null. Parameter name: predicate

这个怎么写好?

方法 Any 是一个 Extension 方法,这意味着该方法是 static 方法。您不能使用 Rhino Mocks.

伪造 static 方法

将这样的期望用于断言是一个常见的错误。

实际上你不必伪造 List(它是一个 DS,这意味着行为不会影响测试),只需创建真实 class 的实例并使用它,然后验证空列表的流程是否正确运行。(对应该发生的事情做 Assert