kasthack.NotEmpty.MsTest
1.4.0
dotnet add package kasthack.NotEmpty.MsTest --version 1.4.0
NuGet\Install-Package kasthack.NotEmpty.MsTest -Version 1.4.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="kasthack.NotEmpty.MsTest" Version="1.4.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add kasthack.NotEmpty.MsTest --version 1.4.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: kasthack.NotEmpty.MsTest, 1.4.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install kasthack.NotEmpty.MsTest as a Cake Addin #addin nuget:?package=kasthack.NotEmpty.MsTest&version=1.4.0 // Install kasthack.NotEmpty.MsTest as a Cake Tool #tool nuget:?package=kasthack.NotEmpty.MsTest&version=1.4.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
kasthack.NotEmpty
What?
kasthack.Empty is a library for recursively checking objects for emptinness(being null, default value, an empty collection or a string). It saves you from writing boilerplate in tests for deserializers / parsers / API clients.
Why does this exist?
Manually checking properties for emptinness leaves an opportunity to miss something and makes the developer to write boilerplate.
Usage
- Install the appropriate package
- Check your objects / their properties for emptinness. Look at the <a href="src/kasthack.NotEmpty.Tests/NotEmptyTestBase.cs">tests</a> for more details.
using kasthack.NotEmpty.Xunit; // replace the namespace to match your test framework
public class MyAmazingTest
{
[Fact]
public void MyThingWorks()
{
var targetObject = MyClass.GetResult();
targetObject.NotEmpty();
//<actual asserts>
}
[Fact]
public void TestOptions()
{
// won't throw
new {
PropertyThanLegitimatelyCanBeAnEmptyStringButNotNull = "",
}.NotEmpty(new AssertOptions {
AllowEmptyStrings = true,
});
//won't throw
new {
PropertyThanLegitimatelyCanBeAnEmptyCollectionButNotNull = new int[]{},
}.NotEmpty(new AssertOptions {
AllowEmptyCollections = true,
});
// won't throw
new {
FileContentThatObviouslyContainsSomeNullBytes = new byte[]{ 0 }
}.NotEmpty(new AssertOptions {
AllowZerosInNumberArrays = true
});
// won't throw BUT will stop at 200 iterations
// default MaxDepth is 100
new {
DeeplyNestedObject = new InfiniteNestedStruct()
}.NotEmpty(new AssertOptions {
MaxDepth = 200
});
// won't throw
new ComputedProperty().NotEmpty(new AssertOptions {
IgnoreComputedProperties = true
})
}
public struct InfiniteNestedStruct
{
public int Value { get; set; } = 1;
public InfiniteNestedStruct Child => new InfiniteNestedStruct { Value = this.Value + 1 };
}
public class ComputedProperty
{
public int Value => 1;
}
}
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net6.0
- kasthack.NotEmpty.Core (>= 1.4.0)
- MSTest.TestFramework (>= 3.0.2)
-
net7.0
- kasthack.NotEmpty.Core (>= 1.4.0)
- MSTest.TestFramework (>= 3.0.2)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.