FluentAssertions,确保IEnumerable只包含单个元素

时间:2015-07-20 20:08:11

标签: c# xunit fluent-assertions

我正在编写单元测试,我有一些看起来像这样的东西:

[Fact]
public void GetFoos_only_gets_foo1()
{
    _foo1.included = true; //Foo object
    _foo2.included = false; //Foo object
    _sut.GetFoos().Should().OnlyContain(_foo1); // this doesn't work, is there a specific syntax to use?
}

GetFoos()返回IEnumberable<Foo>

2 个答案:

答案 0 :(得分:5)

OnlyContain需要一个谓词 -

 GetFoos().Should().OnlyContain(x => _foo1.Equals(x));

答案 1 :(得分:-1)

尝试此页面,看看是否有帮助。 https://github.com/dennisdoomen/fluentassertions/wiki

collection.Should().ContainSingle();
collection.Should().ContainSingle(x => x > 3);
collection.Should().Contain(8).And.HaveElementAt(2, 5).And.NotBeSubsetOf(new[] {11, 56});
collection.Should().Contain(x => x > 3); 
collection.Should().Contain(collection, 5, 6); // It should contain the original items, plus 5 and 6.