Throw

ShouldThrowAction

var homer = new Person {Name = "Homer", Salary = 30000};
var denominator = 1;
Should.Throw<DivideByZeroException>(() =>
{
var y = homer.Salary / denominator;
});

snippet source | anchor

Exception

`var y = homer.Salary / denominator;`
should throw
System.DivideByZeroException
but did not

ShouldThrowAsync

Func<Task> doSomething = async () =>
{
await Task.Delay(1);
};
var exception = await Should.ThrowAsync<DivideByZeroException>(() => doSomething());

snippet source | anchor

Exception

Task doSomething() should throw System.DivideByZeroException but did not

ShouldThrow Action Extension

var homer = new Person {Name = "Homer", Salary = 30000};
var denominator = 1;
Action action = () =>
{
var y = homer.Salary / denominator;
};
action.ShouldThrow<DivideByZeroException>();

snippet source | anchor

Exception

`action()`
should throw
System.DivideByZeroException
but did not

ShouldThrowFunc

Should.Throw<ArgumentNullException>(() => new Person("Homer"));

snippet source | anchor

Exception

`new Person("Homer")`
should throw
System.ArgumentNullException
but did not

ShouldThrow Func Extension

Func<Person> func = () => new Person("Homer");
func.ShouldThrow<ArgumentNullException>();

snippet source | anchor

Exception

`func()`
should throw
System.ArgumentNullException
but did not

ShouldThrowFuncOfTask

var homer = new Person {Name = "Homer", Salary = 30000};
var denominator = 1;
Should.Throw<DivideByZeroException>(() =>
{
var task = Task.Factory.StartNew(
() =>
{
var y = homer.Salary / denominator;
});
return task;
});

snippet source | anchor

Exception

Task `var task = Task.Factory.StartNew( () => { var y = homer.Salary / denominator; }); return task;`
should throw
System.DivideByZeroException
but did not