Null

ShouldBeNull and ShouldNotBeNull allow you to check whether a value is null.

ShouldNotBeNull returns the non-null value if it succeeds so that further assertions can be chained. When used with a reference type, the returned value is the same reference annotated as non-null. Equivalently, when used on a System.Nullable<T> expression, the returned value is the unwrapped T value.

ShouldBeNull

var myRef = "Hello World";
myRef.ShouldBeNull();

snippet source | anchor

Exception

myRef
should be null but was
"Hello World"

ShouldBeNull (nullable value type)

int? nullableValue = 42;
nullableValue.ShouldBeNull();

snippet source | anchor

Exception

nullableValue
should be null but was
42

ShouldNotBeNull

string? myRef = null;
myRef.ShouldNotBeNull();

snippet source | anchor

Exception

myRef
should not be null but was

ShouldNotBeNull (nullable value type)

int? myRef = null;
myRef.ShouldNotBeNull();

snippet source | anchor

Exception

myRef
should not be null but was

ShouldNotBeNull with chaining

var myRef = (string?)"1234";
myRef.ShouldNotBeNull().Length.ShouldBe(5);

snippet source | anchor

Exception

myRef.ShouldNotBeNull().Length
should be
5
but was
4

ShouldNotBeNull with chaining (nullable value type)

SomeStruct? nullableValue = new SomeStruct { IntProperty = 41 };
nullableValue.ShouldNotBeNull().IntProperty.ShouldBe(42);

snippet source | anchor

Exception

nullableValue.ShouldNotBeNull().IntProperty
should be
42
but was
41