C#如何维护 (如果有的话) 中的单元测试的重复项?

标签: Linq C#
发布时间: 2017/2/27 4:21:44
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我知道的

Assert.IsFalse(postsPageOne.Intersect(postsPageTwo).Any());

你可以比作要找到任何重复的对象。

但我想看看是否我列表包含重复项之后我把它用我的方法。下面是测试代码︰

///ARRANGE
///
var toShuffle = new List<int>(){
    1001,
    1002,
    1003,
    1004,
    1005,
    1006,
    1007,
    1008,
    1009,
    1010
};

///ACT
///
toShuffle = Shared_Components.SharedComponents.Shuffle(toShuffle, 10);

///ASSERT
///
Assert.IsTrue(toShuffle.Count == 10, "Number of Elements not correct!");
Assert.IsTrue(toShuffle.All(a => a >= 1001 && a <= 1010), "Elements out of range!");

解决方法 1:

使用FluentAssertions (我强烈建议),你可以︰

toShuffle.Should().OnlyHaveUniqueItems();

但是,我其实已经重写您这样的测试︰

//Arrange
var original = new List<int>{1001,1002,1003,1004,1005,1006,1007,1008,1009,1010};

//Act 
var shuffled = Shared_Components.SharedComponents.Shuffle(original , 10);

//Assert
shuffled.Should().BeEquivalentTo(original)
    .And.NotBeAscendingInOrder();

测试的目的是现在更容易理解。

赞助商