I'm new to using Testing Tools on the .NET Framework, so I downloaded it from NuGet with help from ReSharper.
I am using this Quick Start to learn how to use nUnit. I had just copied the code and an error came up on this attribute:
[ExpectedException(typeof(InsufficientFundsException))] //it is user defined Exception
The error is:
The type or namespace name 'ExpectedException' could not be found (are you missing a using directive or an assembly reference?)
Why? And if I need such functionality, what should I replace it with?
If you're using NUnit 3.0, then your error is because the ExpectedExceptionAttribute
has been removed. You should instead use a construct like the Throws Constraint.
For example, the tutorial you linked has this test:
[Test] [ExpectedException(typeof(InsufficientFundsException))] public void TransferWithInsufficientFunds() { Account source = new Account(); source.Deposit(200m); Account destination = new Account(); destination.Deposit(150m); source.TransferFunds(destination, 300m); }
To change this to work under NUnit 3.0, change it to the following:
[Test] public void TransferWithInsufficientFunds() { Account source = new Account(); source.Deposit(200m); Account destination = new Account(); destination.Deposit(150m); Assert.That(() => source.TransferFunds(destination, 300m), Throws.TypeOf<InsufficientFundsException>()); }
Not sure if this changed recently but with NUnit 3.4.0 it provides Assert.Throws<T>
.
[Test] public void TransferWithInsufficientFunds() { Account source = new Account(); source.Deposit(200m); Account destination = new Account(); destination.Deposit(150m); Assert.Throws<InsufficientFundsException>(() => source.TransferFunds(destination, 300m)); }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With