5

我想断言集合中至少有一项与 NUnit 的给定谓词匹配。我已经断言项目的数量大于 0,因此模拟 LINQAny()方法的行为就足够了。

我正在寻找类似的东西:

Assert.That(resultEnumerable, Is.Any.Matching(x => x.Property == "x"));

或者至少对于:

Assert.That(resultEnumerable.Select(x => x.Property), Is.Any.EqualTo("x"));

不幸的是,似乎只有一个Is.All约束,没有等价物Is.Any——我错过了什么?

注意:我不想要更少的可读性:

Assert.That(resultEnumerable.Any(x => x.Property == "x"), Is.True);
4

2 回答 2

9

其中之一怎么样?

Assert.That (resultEnumerable, Has.Some.Property ("Property").EqualTo ("x"));
Assert.That (resultEnumerable, Has.Some.Matches<X> (x => x.Property == "x"));
于 2016-08-09T14:54:22.150 回答
3

我发现:

Assert.That (resultEnumerable.Select (x => x.Property), Has.Some.EqualTo ("x"));

仍然更喜欢我不再需要的解决方案Select()

于 2016-08-09T14:46:39.850 回答