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 の拡張フック」を参照してください。

適用対象