<PackageReference Include="NUnit" Version="4.3.0" />

Assume

public abstract class Assume
Provides static methods to express the assumptions that must be met for a test to give a meaningful result. If an assumption is not met, the test should produce an inconclusive result.
using NUnit.Framework.Constraints; using NUnit.Framework.Internal; using System; using System.ComponentModel; using System.Diagnostics.CodeAnalysis; using System.Runtime.CompilerServices; namespace NUnit.Framework { [System.Runtime.CompilerServices.NullableContext(1)] [System.Runtime.CompilerServices.Nullable(0)] public abstract class Assume { [EditorBrowsable(EditorBrowsableState.Never)] public new static bool Equals(object a, object b) { throw new InvalidOperationException("Assume.Equals should not be used. Use Assume.That instead."); } public new static void ReferenceEquals(object a, object b) { throw new InvalidOperationException("Assume.ReferenceEquals should not be used. Use Assume.That instead."); } public static void That<[System.Runtime.CompilerServices.Nullable(2)] TActual>(ActualValueDelegate<TActual> del, IResolveConstraint expr, NUnitString message = default(NUnitString), [CallerArgumentExpression("del")] string actualExpression = "", [CallerArgumentExpression("expr")] string constraintExpression = "") { CheckMultipleAssertLevel(); IConstraint constraint = expr.Resolve(); ConstraintResult constraintResult = constraint.ApplyTo(del); if (!constraintResult.IsSuccess) ReportInconclusive(constraintResult, message.ToString(), actualExpression, constraintExpression); } public static void That<[System.Runtime.CompilerServices.Nullable(2)] TActual>(ActualValueDelegate<TActual> del, IResolveConstraint expr, FormattableString message, [CallerArgumentExpression("del")] string actualExpression = "", [CallerArgumentExpression("expr")] string constraintExpression = "") { CheckMultipleAssertLevel(); IConstraint constraint = expr.Resolve(); ConstraintResult constraintResult = constraint.ApplyTo(del); if (!constraintResult.IsSuccess) ReportInconclusive(constraintResult, message.ToString(), actualExpression, constraintExpression); } public static void That<[System.Runtime.CompilerServices.Nullable(2)] TActual>(ActualValueDelegate<TActual> del, IResolveConstraint expr, Func<string> getExceptionMessage, [CallerArgumentExpression("del")] string actualExpression = "", [CallerArgumentExpression("expr")] string constraintExpression = "") { CheckMultipleAssertLevel(); IConstraint constraint = expr.Resolve(); ConstraintResult constraintResult = constraint.ApplyTo(del); if (!constraintResult.IsSuccess) ReportInconclusive(constraintResult, getExceptionMessage(), actualExpression, constraintExpression); } public static void That([DoesNotReturnIf(false)] bool condition, NUnitString message = default(NUnitString), [CallerArgumentExpression("condition")] string actualExpression = "") { That(condition, Is.True, message, actualExpression, "Is.True"); } public static void That([DoesNotReturnIf(false)] bool condition, FormattableString message, [CallerArgumentExpression("condition")] string actualExpression = "") { That(condition, Is.True, message, actualExpression, "Is.True"); } public static void That([DoesNotReturnIf(false)] bool condition, Func<string> getExceptionMessage, [CallerArgumentExpression("condition")] string actualExpression = "") { That(condition, Is.True, getExceptionMessage, actualExpression, "Is.True"); } public static void That(Func<bool> condition, NUnitString message = default(NUnitString), [CallerArgumentExpression("condition")] string actualExpression = "") { That(condition(), Is.True, message, actualExpression, "Is.True"); } public static void That(Func<bool> condition, FormattableString message, [CallerArgumentExpression("condition")] string actualExpression = "") { That(condition(), Is.True, message, actualExpression, "Is.True"); } public static void That(Func<bool> condition, Func<string> getExceptionMessage, [CallerArgumentExpression("condition")] string actualExpression = "") { That(condition(), Is.True, getExceptionMessage, actualExpression, "Is.True"); } public static void That<[System.Runtime.CompilerServices.Nullable(2)] TActual>(TActual actual, IResolveConstraint expression, NUnitString message = default(NUnitString), [CallerArgumentExpression("actual")] string actualExpression = "", [CallerArgumentExpression("expression")] string constraintExpression = "") { CheckMultipleAssertLevel(); IConstraint constraint = expression.Resolve(); ConstraintResult constraintResult = constraint.ApplyTo(actual); if (!constraintResult.IsSuccess) ReportInconclusive(constraintResult, message.ToString(), actualExpression, constraintExpression); } public static void That<[System.Runtime.CompilerServices.Nullable(2)] TActual>(TActual actual, IResolveConstraint expression, FormattableString message, [CallerArgumentExpression("actual")] string actualExpression = "", [CallerArgumentExpression("expression")] string constraintExpression = "") { CheckMultipleAssertLevel(); IConstraint constraint = expression.Resolve(); ConstraintResult constraintResult = constraint.ApplyTo(actual); if (!constraintResult.IsSuccess) ReportInconclusive(constraintResult, message.ToString(), actualExpression, constraintExpression); } public static void That<[System.Runtime.CompilerServices.Nullable(2)] TActual>(TActual actual, IResolveConstraint expression, Func<string> getExceptionMessage, [CallerArgumentExpression("actual")] string actualExpression = "", [CallerArgumentExpression("expression")] string constraintExpression = "") { CheckMultipleAssertLevel(); IConstraint constraint = expression.Resolve(); ConstraintResult constraintResult = constraint.ApplyTo(actual); if (!constraintResult.IsSuccess) ReportInconclusive(constraintResult, getExceptionMessage(), actualExpression, constraintExpression); } private static void CheckMultipleAssertLevel() { if (TestExecutionContext.CurrentContext.MultipleAssertLevel > 0) throw new Exception("Assume.That may not be used in a multiple assertion block."); } private static void ReportInconclusive(ConstraintResult result, string message, string actualExpression, string constraintExpression) { MessageWriter messageWriter = new TextMessageWriter(Assert.ExtendedMessage("Assume.That", message, actualExpression, constraintExpression), Array.Empty<object>()); result.WriteMessageTo(messageWriter); throw new InconclusiveException(messageWriter.ToString()); } } }