Skip to content

jeromerg/NCase

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

See the slides on slides.com or download the PDF

loading slides

Status:

Build status NuGet

(Related projects: NVisitor, NDocUtil, NUtil, NGitVersion)

NCase

Define, Combine, Visualize and Replay hundreds of test cases with a few lines of code.

NCase is a mix between a Mocking Framework like Moq and a parametrized test framework, having advanced combinatorial capabilities.

It can also be used alone to generate a set of data based on combinatorial rules.

Installation

The easiest way is to install NCase with Nuget.

In combination with NUnit:

Install-Package NCase, NCase.NunitAdapter

In combination with XUnit:

Install-Package NCase, NCase.XunitAdapter

First Steps

Create a new console application containing the following lines:

public interface IVar
{
    int X { get; set; }
    int Y { get; set; }
}

public static void Main()
{
    var builder = NCase.NewBuilder();
    var v = builder.NewContributor<IVar>("v");
    var mySet = builder.NewCombinationSet("c");

    using (mySet.Define())
    {
        v.X = 0;
        v.X = 1;

        v.Y = 0;
        v.Y = 1;
    }

    string table = mySet.PrintCasesAsTable();

    Console.WriteLine(table);
}

Ensure that the configuration is set to DEBUG. Execute the program. The result in the console should look like:

 # | v.X | v.Y
 - | --- | ---
 1 |   0 |   0
 2 |   0 |   1
 3 |   1 |   0
 4 |   1 |   1

TOTAL: 4 TEST CASES

Bingo! You generated your first set of test cases.

Now, add the following lines to use each combination:

foreach (Case c in mySet.Cases().Replay())
    Console.WriteLine("{0} ^ {1} = {2}", v.X, v.Y, v.X ^ v.Y);
0 ^ 0 = 0
0 ^ 1 = 1
1 ^ 0 = 1
1 ^ 1 = 0

It generates and replays all test cases one by one!

Discovering NCase

See the long introduction

Next Steps

First, have fun with NCase!

Then, please provide feedbacks, critiques, and suggestions!

About

Define, Combine, Visualize and Replay hundreds of test cases with a few lines of code

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages