使用Shouldly测试异常消息
本文关键字:消息 异常 测试 Shouldly 使用 | 更新日期: 2023-09-27 18:17:20
是否有方法使用shouldly测试异常消息?
一个例子:
public class MyException: Exception{
}
要测试的方法:
public class ClassUnderTest
{
public void DoSomething()
{
throw new MyException("Message");
}
}
我通常会这样测试:
[TestMethod]
public void Test()
{
try
{
new ClassUnderTest().DoSomething();
Assert.Fail("Exception not thrown");
} catch(MyException me)
{
Assert.AreEqual("Message", me.Message);
}catch(Exception e)
Assert.Fail("Wrong exception thrown");
}
}
使用shouldly,我现在可以测试是否抛出异常:
[TestMethod]
public void TestWithShouldly()
{
Should.ThrowException<MyException>(() => new ClassUnderTest().DoSomething());
}
但是我如何测试异常消息呢?
Should.Throw()
方法返回异常,因此您可以继续测试其他事情。
Should.Throw<MyException>(() => new ClassUnderTest().DoSomething())
.Message.ShouldBe("My Custom Message");
或者,如果您想做的不仅仅是测试消息:
MyException ex = Should.Throw<MyException>(() => new ClassUnderTest().DoSomething());
你可以对ex
做任何你喜欢的事情。
注意:应该V2使用Should.ThrowException<>()