assert.throwsMSTest实现功能相似的单元测试的测试
复制代码代码如下所示:
{测试}
{ expectedexception(typeof(argumentnullexception))}
公共无效writetotextfile()
{
pdfutility.writetotextfile(D: ACA .pdf
}
现在,让我们扩展以获得类似的成功并添加一个类。代码如下:
复制代码代码如下所示:
X
用于预期将抛出异常的操作的有用断言。
X
公共静态类exceptionassert
{
X
执行异常,期望抛出一个异常,抛出异常。
断言。扔在NUnit。
X
要执行的操作
动作抛出的异常
公共静态异常抛出(动作操作)
{
返回抛出(动作,NULL);
}
X
执行异常,期望抛出一个异常,抛出异常。
断言。扔在NUnit。
X
要执行的操作
如果没有抛出预期异常,则会出现错误消息。
动作抛出的异常
公共静态异常抛出(动作动作,字符串消息)
{
尝试
{
行动();
}
catch(异常前)
{
action方法抛出了/预期的异常。
如果单元测试想对它执行进一步的断言,则需要使用异常返回。
返回前;
}
最后,在这里,没有抛出预期的异常。失败!
把新的assertfailedexception(消息预期异常没有抛。);
}
X
执行异常,期望抛出一个特定类型的异常。
断言。扔在NUnit。
X
要执行的操作
动作抛出的异常
公共静态T抛出(动作操作)在T:异常
{
返回抛出(动作,NULL);
}
X
执行异常,期望抛出一个特定类型的异常。
断言。扔在NUnit。
X
要执行的操作
如果没有抛出预期异常,则会出现错误消息。
动作抛出的异常
公共静态T抛出(动作动作,字符串消息)在T:异常
{
尝试
{
行动();
}
catch(异常前)
{
t=;
如果(实际为NULL)
{
把新的assertfailedexception(消息字符串。格式(预期异常类型{ 0 }不,类型
}
action方法抛出了类型的预期异常。
如果单元测试想对它执行进一步的断言,则需要使用异常返回。
返回实际;
}
我们结束了 / /如果这里,'t'was型不抛出异常的预期。失败!
把新的assertfailedexception(消息字符串格式(预期异常类型{ 0 }不丢。)))
}
}
好了,现在我们可以在MsTest做这个,看看下面的代码:
复制代码代码如下所示:
{测试}
公共无效writetotextfile2()
{
/ /执行断言。抛出MSTest
((exceptionassert。投)= pdfutility.writetotextfile(D: aca.pdf,null)
输出文件路径不应为空);
}