语言

CollectionAssert.That 属性

定义

获取 CollectionAssert 功能的单一实例。

public:
 static property Microsoft::VisualStudio::TestTools::UnitTesting::CollectionAssert ^ That { Microsoft::VisualStudio::TestTools::UnitTesting::CollectionAssert ^ get(); };
public static Microsoft.VisualStudio.TestTools.UnitTesting.CollectionAssert That { get; }
[System.Runtime.CompilerServices.Nullable(1)]
public static Microsoft.VisualStudio.TestTools.UnitTesting.CollectionAssert That { get; }
static member That : Microsoft.VisualStudio.TestTools.UnitTesting.CollectionAssert
[<System.Runtime.CompilerServices.Nullable(1)>]
static member That : Microsoft.VisualStudio.TestTools.UnitTesting.CollectionAssert
Public Shared ReadOnly Property That As CollectionAssert

属性值

属性

示例

以下示例将自定义 AreEqualUnordered 断言定义为扩展方法, CollectionAssert 并通过以下方法调用它 CollectionAssert.That:

using System.Collections.Generic;
using System.Linq;
using Microsoft.VisualStudio.TestTools.UnitTesting;

public static class CustomCollectionAssertExtensions
{
    public static void AreEqualUnordered<T>(this CollectionAssert collectionAssert, IEnumerable<T> expected, IEnumerable<T> actual)
    {
        if (!expected.OrderBy(x => x).SequenceEqual(actual.OrderBy(x => x)))
        {
            throw new AssertFailedException("CollectionAssert.That.AreEqualUnordered failed. Collections do not contain the same elements.");
        }
    }
}

[TestClass]
public class SetTests
{
    [TestMethod]
    public void Items_MatchRegardlessOfOrder()
    {
        CollectionAssert.That.AreEqualUnordered(new[] { 1, 2, 3 }, new[] { 3, 1, 2 });
    }
}

注解

用户可以通过 C# 扩展方法插入自定义断言。 例如,自定义断言提供程序的签名可以是 public static void AreEqualUnordered(this CollectionAssert customAssert, ICollection expected, ICollection actual) 调用站点 CollectionAssert.That.AreEqualUnordered(list1, list2);。

对于新的自定义断言,首选扩展 That ,因为在 CollectionAssert 将来的版本中可能会弃用。 有关详细信息,请参阅 StringAssert 和 CollectionAssert 上的扩展挂钩。

适用于