断言集合的顺序正确

Dav*_*eer 3 c#

如何在MSTest中断言返回的集合的顺序是否正确?

[TestMethod]
    public void when_sorting_movies_it_should_be_able_to_sort_all_movies_by_title_descending()
    {
        populateTestMovies(movie_collection);
        MovieLibrary movieLibrary = new MovieLibrary(movie_collection);
        IEnumerable<Movie> results = movieLibrary.sort_all_movies_by_title_descending();
        Assert.IsTrue(results.Contains(theres_something_about_mary));
        Assert.IsTrue(results.Contains(the_ring));
        Assert.IsTrue(results.Contains(shrek));
        Assert.IsTrue(results.Contains(pirates_of_the_carribean));
        Assert.IsTrue(results.Contains(indiana_jones_and_the_temple_of_doom));
        Assert.IsTrue(results.Contains(cars));
        Assert.IsTrue(results.Contains(a_bugs_life));
        Assert.AreEqual(7, results.Count());
    }
Run Code Online (Sandbox Code Playgroud)

Fre*_*örk 10

IEnumerable<string>使用预期顺序创建带有电影标题的硬编码,从结果集合中提取标题并使用SequenceEqual它们检查它们是否以相同的顺序排列(假设您引用的常量是Movie对象,并且Movie具有Title属性):

IEnumerable<string> expected = new[] 
{ 
    theres_something_about_mary.Title, 
    the_ring.Title,
   /* and so on */ 
};
Assert.IsTrue(results.Select(m => m.Title).SequenceEqual(expected));
Run Code Online (Sandbox Code Playgroud)