{
    "title": "Assert - xUnit.net",
    "useMathjax": false,
    "isDraft": true
}

================================================================================

単純比較

  • 期待される答え (expected) と、実際の実行結果 (actual) を与えて比較する。
  • 2つが同じなら成功(メソッド名の通りになっていれば成功)
Assert.Equal("期待される答え", "実際の実行結果");

Assert.Equal(2, MyMath.Add(1, 1));
メソッド 説明
Assert.Equal<T>(T expected, T actual)
Assert.Equal(decimal expected, decimal actual, int precision) 同じなら成功。10進数で小数点以下 precision 桁になるように丸め込んで比較する。
Assert.Equal(double expected, double actual, int precision) 同じなら成功。10進数で小数点以下 precision 桁になるように丸め込んで比較する。
Assert.NotEqual<T>(T expected, T actual)
Assert.NotEqual(decimal expected, decimal actual, int precision) 同じなら成功。10進数で小数点以下 precision 桁になるように丸め込んで比較する。
Assert.NotEqual(double expected, double actual, int precision) 同じなら成功。10進数で小数点以下 precision 桁になるように丸め込んで比較する。
Assert.Equal<T>(T expected, T actual, IEqualityComparer<T> comparer)
Assert.NotEqual<T>(T expected, T actual, IEqualityComparer<T> comparer)

Boolean 系

True

メソッド 説明
Assert.True(bool condition) conditiontrue なら成功
Assert.True(bool? condition) conditiontrue なら成功
Assert.True(bool condition, string userMessage) conditiontrue なら成功。userMessage はメッセージ
Assert.True(bool? condition, string userMessage) conditiontrue なら成功。userMessage はメッセージ

False

メソッド 説明
Assert.False(bool condition) conditionfalse なら成功
Assert.False(bool? condition) conditionfalse なら成功
Assert.False(bool condition, string userMessage) conditionfalse なら成功。userMessage はメッセージ
Assert.False(bool? condition, string userMessage) conditionfalse なら成功。userMessage はメッセージ

文字列系

比較系

メソッド 説明
Assert.Equal(string expected, string actual) actualexpected と同じなら成功
Assert.Equal(string expected, string actual, bool ignoreCase = false, bool ignoreLineEndingDifferences = false, bool ignoreWhiteSpaceDifferences = false) actualexpected と同じなら成功<br/>ignoreCase : true なら大文字と区別しない<br/>ignoreLineEndingDifferences : true なら改行コードの違いを区別しない<br/>ignoreWhiteSpaceDifferences : true ならホワイトスペースの違いを区別しない(全角スペースはダメ?)

包含系

メソッド 説明
Assert.EndsWith(string expectedEndString, string actualString)
Assert.EndsWith(string expectedEndString, string actualString, StringComparison comparisonType)
Assert.StartsWith(string expectedStartString, string actualString)
Assert.StartsWith(string expectedStartString, string actualString, StringComparison comparisonType)
Assert.Contains(string expectedSubstring, string actualString)
Assert.Contains(string expectedSubstring, string actualString, StringComparison comparisonType)
Assert.DoesNotContain(string expectedSubstring, string actualString)
Assert.DoesNotContain(string expectedSubstring, string actualString, StringComparison comparisonType)

正規表現系

メソッド 説明
Assert.DoesNotMatch(string expectedRegexPattern, string actualString)
Assert.DoesNotMatch(Regex expectedRegex, string actualString)
Assert.Matches(Regex expectedRegex, string actualString)
Assert.Matches(string expectedRegexPattern, string actualString)

Null

メソッド 説明
Assert.Null(object @object) @object の参照が null なら成功
Assert.NotNull(object @object) @objectnull なら成功

public static T IsAssignableFrom<T>(object @object); public static void IsAssignableFrom(Type expectedType, object @object); public static void IsNotType<T>(object @object); public static void IsNotType(Type expectedType, object @object); public static T IsType<T>(object @object); public static void IsType(Type expectedType, object @object);

例外

public static T Throws<T>(Action testCode) where T : Exception; public static T Throws<T>(Func<object> testCode) where T : Exception; public static T Throws<T>(string paramName, Action testCode) where T : ArgumentException; public static T Throws<T>(string paramName, Func<object> testCode) where T : ArgumentException; public static Exception Throws(Type exceptionType, Action testCode); public static Exception Throws(Type exceptionType, Func<object> testCode); public static T ThrowsAny<T>(Action testCode) where T : Exception; public static T ThrowsAny<T>(Func<object> testCode) where T : Exception; public static Task<T> ThrowsAnyAsync<T>(Func<Task> testCode) where T : Exception; public static Task<T> ThrowsAsync<T>(Func<Task> testCode) where T : Exception; public static Task<T> ThrowsAsync<T>(string paramName, Func<Task> testCode) where T : ArgumentException; public static Task<Exception> ThrowsAsync(Type exceptionType, Func<Task> testCode);

public static void All<T>(IEnumerable<T> collection, Action<T> action); public static void Collection<T>(IEnumerable<T> collection, params Action<T>[] elementInspectors); public static void Contains<T>(IEnumerable<T> collection, Predicate<T> filter); public static void Contains<T>(T expected, IEnumerable<T> collection); public static void Contains<T>(T expected, IEnumerable<T> collection, IEqualityComparer<T> comparer); public static void DoesNotContain<T>(IEnumerable<T> collection, Predicate<T> filter); public static void DoesNotContain<T>(T expected, IEnumerable<T> collection); public static void DoesNotContain<T>(T expected, IEnumerable<T> collection, IEqualityComparer<T> comparer); public static void Empty(IEnumerable collection); public static void Equal<T>(IEnumerable<T> expected, IEnumerable<T> actual); public static void Equal<T>(IEnumerable<T> expected, IEnumerable<T> actual, IEqualityComparer<T> comparer); public static void InRange<T>(T actual, T low, T high) where T : IComparable; public static void InRange<T>(T actual, T low, T high, IComparer<T> comparer); public static void NotEmpty(IEnumerable collection); public static void NotEqual<T>(IEnumerable<T> expected, IEnumerable<T> actual); public static void NotEqual<T>(IEnumerable<T> expected, IEnumerable<T> actual, IEqualityComparer<T> comparer); public static void NotInRange<T>(T actual, T low, T high) where T : IComparable; public static void NotInRange<T>(T actual, T low, T high, IComparer<T> comparer); public static void NotSame(object expected, object actual); public static void NotStrictEqual<T>(T expected, T actual); public static void ProperSubset<T>(ISet<T> expectedSuperset, ISet<T> actual); public static void ProperSuperset<T>(ISet<T> expectedSubset, ISet<T> actual); public static void PropertyChanged(INotifyPropertyChanged @object, string propertyName, Action testCode); protected static Exception RecordException(Func<object> testCode); protected static Task<Exception> RecordExceptionAsync(Func<Task> testCode); public static void Same(object expected, object actual); public static T Single<T>(IEnumerable<T> collection); public static object Single(IEnumerable collection); public static T Single<T>(IEnumerable<T> collection, Predicate<T> predicate); public static void Single(IEnumerable collection, object expected); public static void StrictEqual<T>(T expected, T actual); public static void Subset<T>(ISet<T> expectedSuperset, ISet<T> actual); public static void Superset<T>(ISet<T> expectedSubset, ISet<T> actual);

Assert

NullAsserts

// null だったら失敗
Assert.NotNull(object @object);

// null じゃなかったら失敗
Assert.Null(object @object);

BooleanAsserts

// false じゃなかったら失敗
Assert.False(bool? condition[, string userMessage]);

// true じゃなかったら失敗
Assert.True(bool? condition[, string userMessage]);

参考資料