您如何测试私有方法内部的异常,该方法由 public void 使用?
How do you test for an exception that is inside of a private method, which is used by a public void?
正如标题所说,我正在测试在私有方法中抛出异常,然后通过 public void 访问该异常。任何帮助将不胜感激。
您可以使用Assert.Throws 来检查是否抛出异常。如果没有抛出异常则测试将失败:
var foo = new Foo();
Assert.Throws<MyException>(() => foo.DoSomething());
这个测试需要抛出MyException
。如果抛出另一个异常(即使是从 MyException
派生的异常),则测试将失败。
如果你想测试异常或从该异常派生的任何东西,那么你可以使用 Assert.Catch :
var foo = new Foo();
Assert.Catch<MyException>(() => foo.DoSomething());
正如标题所说,我正在测试在私有方法中抛出异常,然后通过 public void 访问该异常。任何帮助将不胜感激。
您可以使用Assert.Throws 来检查是否抛出异常。如果没有抛出异常则测试将失败:
var foo = new Foo();
Assert.Throws<MyException>(() => foo.DoSomething());
这个测试需要抛出MyException
。如果抛出另一个异常(即使是从 MyException
派生的异常),则测试将失败。
如果你想测试异常或从该异常派生的任何东西,那么你可以使用 Assert.Catch :
var foo = new Foo();
Assert.Catch<MyException>(() => foo.DoSomething());