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

Assume

public 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; namespace NUnit.Framework { public class Assume { [EditorBrowsable(EditorBrowsableState.Never)] public new static bool Equals(object a, object b) { throw new InvalidOperationException("Assume.Equals should not be used for Assertions"); } public new static void ReferenceEquals(object a, object b) { throw new InvalidOperationException("Assume.ReferenceEquals should not be used for Assertions"); } public static void That<TActual>(ActualValueDelegate<TActual> del, IResolveConstraint expr) { That(del, expr.Resolve(), null, null); } public static void That<TActual>(ActualValueDelegate<TActual> del, IResolveConstraint expr, string message, params object[] args) { ConstraintResult constraintResult = expr.Resolve().ApplyTo(del); if (!constraintResult.IsSuccess) { MessageWriter messageWriter = new TextMessageWriter(message, args); constraintResult.WriteMessageTo(messageWriter); throw new InconclusiveException(messageWriter.ToString()); } } public static void That<TActual>(ActualValueDelegate<TActual> del, IResolveConstraint expr, Func<string> getExceptionMessage) { if (!expr.Resolve().ApplyTo(del).IsSuccess) throw new InconclusiveException(getExceptionMessage()); } public static void That(bool condition, string message, params object[] args) { That(condition, Is.True, message, args); } public static void That(bool condition) { That(condition, Is.True, null, null); } public static void That(bool condition, Func<string> getExceptionMessage) { That(condition, Is.True, getExceptionMessage); } public static void That(Func<bool> condition, string message, params object[] args) { That(condition(), Is.True, message, args); } public static void That(Func<bool> condition) { That(condition(), Is.True, null, null); } public static void That(Func<bool> condition, Func<string> getExceptionMessage) { That(condition(), Is.True, getExceptionMessage); } public static void That(TestDelegate code, IResolveConstraint constraint) { That((object)code, constraint); } public static void That<TActual>(TActual actual, IResolveConstraint expression) { That(actual, expression, null, null); } public static void That<TActual>(TActual actual, IResolveConstraint expression, string message, params object[] args) { ConstraintResult constraintResult = expression.Resolve().ApplyTo(actual); if (!constraintResult.IsSuccess) { MessageWriter messageWriter = new TextMessageWriter(message, args); constraintResult.WriteMessageTo(messageWriter); throw new InconclusiveException(messageWriter.ToString()); } } public static void That<TActual>(TActual actual, IResolveConstraint expression, Func<string> getExceptionMessage) { if (!expression.Resolve().ApplyTo(actual).IsSuccess) throw new InconclusiveException(getExceptionMessage()); } } }