c# - Testing for exceptions with [TestCase] attribute in NUnit 3? -


how test exceptions in testcase nunit3?

let's have method divide(a,b) defined follows:

public double divide(double a, double b) {     if(math.abs(b) < double.epsilon) throw new argumentexception("divider cannot 0");     return a/b; } 

i want test method using nunit 3.0 test cases, maybe have:

[testcase(-10, 2, -5)] [testcase(-1, 2, -0.5)] public void testdivide(double a, double b, double result) {     assert.that(_uut.divide(a, b), is.equalto(result)); } 

is there way specify test case cause divide() throw argumentexception , somehow have expected result, e.g. along lines of:

[testcase(-10, 2, -5)] [testcase(-1, 2, -0.5)] [testcase(-1, 0, expectedresult = typeof(argumentexception)] public void testdivide(double a, double b, double result) {     assert.that(_uut.divide(a, b), is.equalto(result)); } 

(of course define separate test method , use assert.throws() in this, purely out of curiosity)

expectedexception have been correct method nunit 2.x, removed nunit 3.

there's various snippets of discussion in nunit google group , equivalent dev group - looks decision made it's better design pattern test expected outcomes, , exceptions in separate methods. (link)

the way in nunit 3, break down in 2 separate tests. (confirmed in similar question answered nunit core team, here.)

[testcase(-10, 2, -5)] [testcase(-1, 2, -0.5)] public void testdivide(double a, double b, double result) {     assert.that(_uut.divide(a, b), is.equalto(result)); }  [testcase(-1, 0)] public void testdividethrows(double a, double b) {     assert.that(() => _uut.divide(a, b), throws.typeof<argumentexception>()); } 

Comments

Popular posts from this blog

Hatching array of circles in AutoCAD using c# -

ios - UITEXTFIELD InputView Uipicker not working in swift -

Python Pig Latin Translator -