NUnit Tutorial
Tags

NUnit Assert Examples - How to Use?

NUnit Assert class is used to determine whether a particular test method gives expected result or not. 

In a test method, we write code the check the business object behavior. That business object returns a result. In Assert method we match the actual result with our expected result. If result comes according to our expected result then our test case is passed else failed.

Constraint Model

NUnit provides a new Constraint Model to improve the test method readability. In constraint model, we use a single method "That" and specify constraints to check our expected response.

That method applies a constraint to the actual value. If a constraint is satisfied our test case is succeeded else failed.

Helper Classes

Below are helper classes to provide a constraint to assert the method.

  1. Is
  2. Has
  3. Contains
  4. Does
  5. Throws

Constraint Categories

These constraints can be divided into eight categories:

  1. Comparison
  2. String
  3. Collection
  4. Conditional
  5. Compound
  6. Directory/File
  7. Type/Reference
  8. Exceptions

Comparison Constraints

Equal Constraint Example


Assert.That(result, Is.EqualTo(5));

Not Equal Constraint Example


Assert.That(result, Is.Not.EqualTo(7));

Greater Than Constraint Example


Assert.That(result, Is.GreaterThan(2));
Assert.That(result, Is.GreaterThanOrEqualTo(5));

Less Than Constraint Example


Assert.That(result, Is.LessThan(9));
Assert.That(result, Is.LessThanOrEqualTo(5));

Ranges Example


Assert.That(result, Is.InRange(5, 10));

String Constraints

String Equal / Not Equal Constraint Example


Assert.That(result, Is.EqualTo("abcdefg"));
Assert.That(result, Is.Not.EqualTo("mnop"));

String Equal Ignore Case Example


Assert.That(result, Is.EqualTo("ABCDEFG").IgnoreCase);

Substring Constraint Example


Assert.That(result, Does.Contain("def").IgnoreCase);
Assert.That(result, Does.Not.Contain("igk").IgnoreCase);

Empty Example


Assert.That(result, Is.Empty);
Assert.That(result, Is.Not.Empty);

Starts With / Ends With Examples


Assert.That(result, Does.StartWith("abc"));
Assert.That(result, Does.Not.StartWith("efg"));

Assert.That(result, Does.EndWith("efg"));
Assert.That(result, Does.Not.EndWith("mno"));

Regex Constraint Example


string result = "abcdefg";

Assert.That(result, Does.Match("a*g"));
Assert.That(result, Does.Not.Match("m*n"));

Collection Constraints

All Items Examples


int[] array = new int[] { 1, 2, 3, 4, 5 };

Not Null Example


Assert.That(array, Is.All.Not.Null);

All Greater Than Example


Assert.That(array, Is.All.GreaterThan(0));

All Less Than Example


Assert.That(array, Is.All.LessThan(10));

Instance Of Example


Assert.That(array, Is.All.InstanceOf<Int32>());

No Items Example


Assert.That(array, Is.Empty);
Assert.That(array, Is.Not.Empty);

Exactly n Items Example


Assert.That(array, Has.Exactly(5).Items);

Unique Items Example


Assert.That(array, Is.Unique);

Contains Item


Assert.That(array, Contains.Item(4));

Ordered Examples

Ascending


Assert.That(array, Is.Ordered.Ascending);

Descending


Assert.That(array, Is.Ordered.Descending);

By Single Property


List<Employee> employees = new List<Employee>();
employees.Add(new Employee { Age = 32 });
employees.Add(new Employee { Age = 49 });
employees.Add(new Employee { Age = 57 });

Assert.That(employees, Is.Ordered.Ascending.By("Age"));
Assert.That(employees, Is.Ordered.Descending.By("Age"));

By Multiple Properties


Assert.That(employees, Is.Ordered.Ascending.By("Age").Then.Descending.By("Name"));

SuperSet / SubSet Examples


int[] array = new int[] { 1, 2, 3, 4, 5 };
int[] array2 = { 3, 4 };
Assert.That(array2, Is.SubsetOf(array));

Conditional Constraints

Null Constraint Examples


Assert.That(array, Is.Null);
Assert.That(array, Is.Not.Null);

Boolean (True / False)


bool result = array.Length > 0;
Assert.That(result, Is.True);

Assert.That(result, Is.False);

Empty Constraint Example


Assert.That(array, Is.Empty);

Compound Constraints

AND constraint example


Assert.That(result, Is.GreaterThan(4).And.LessThan(10));

OR example


Assert.That(result, Is.LessThan(1).Or.GreaterThan(4));

NOT example


Assert.That(result, Is.Not.EqualTo(7));

Directory / File Constraints

File or Directory exists.


Assert.That(new FileInfo(path), Does.Exist);
Assert.That(new FileInfo(path), Does.Not.Exist);

Assert.That(new DirectoryInfo(path), Does.Exist);
Assert.That(new DirectoryInfo(path), Does.Not.Exist);

Same Path Example


Assert.That(path, Is.SamePath(@"c:\documents\imp1").IgnoreCase);

Empty Directory. Is.Empty returns true when directory has no files.


Assert.That(new DirectoryInfo(path), Is.Empty);

Type / Reference Constraints

Instance of example


IEmployee emp = new Employee();

Assert.That(emp, Is.InstanceOf<IEmployee>());
Assert.That(emp, Is.Not.InstanceOf<string>());

Exact Same Type Constraint


Assert.That(emp, Is.TypeOf<Employee>());

Assignable to another Type. For e.g. interface to implemented class.


Assert.That(emp, Is.AssignableTo<Employee>());

Exceptions Constraints

Is Exception Throws By Method


IEmployee emp = new Employee();
emp.Age = 0;

Assert.That(emp.IsSeniorCitizen(), Throws.Exception);

Expected / Same Type Exception


Assert.That(emp.IsSeniorCitizen(), Throws.TypeOf<ArgumentException>());

Exception Message Comparison


Exception ex = Assert.Throws<ArgumentException>(() => emp.IsSeniorCitizen());
Assert.That(ex.Message, Is.EqualTo("Age can not 0."));