项目中我们继承.net系统异常类做成了一个自定义的异常类:
WPSYSException
在实际程序中发现异常情况时,需要构造并抛出此类异常时,代码如下:
使用Vs2005作单元测试时,测试代码应写为以下方式,方可测试程序抛出的异常是否正确:
即,注意在测试方法头加上次属性
[ExpectedException(typeof(WPSYSException), "输入数组为空")]
WPSYSException:自定义异常类
输入数组为空:异常中的信息
因WPSYSException为自定义的异常类,所在在测试工程中需要引用包含次异常类的dll或者加入代码
此前用以下方式也可实现指定错误信息的正确性测试,但不如上述方法规范:
在实际程序中发现异常情况时,需要构造并抛出此类异常时,代码如下:
//
如果输入数组为空,报异常
if ((inDoubleArray == null ) || (inDoubleArray.Length == 0 ))
{
// 抛出异常
throw new WPSYSException(
null ,
null ,
ProgID,
strErrPos,
" 输入数组为空 " ,
" 申请的错误号常量 "
);
}
if ((inDoubleArray == null ) || (inDoubleArray.Length == 0 ))
{
// 抛出异常
throw new WPSYSException(
null ,
null ,
ProgID,
strErrPos,
" 输入数组为空 " ,
" 申请的错误号常量 "
);
}
使用Vs2005作单元测试时,测试代码应写为以下方式,方可测试程序抛出的异常是否正确:
///
<summary>
/// ToOneArray (double[]) 的测试(输入数组为空)
/// </summary>
[TestMethod()]
[ExpectedException( typeof (WPSYSException), " 输入数组为空 " )]
public void ToOneArrayTest_e1()
{
double [] inDoubleArray = null ;
double [] expected = null ;
double [] actual;
actual = WP.SEV001.COM.SYS.S000C11006.ToOneArray(inDoubleArray);
}
/// ToOneArray (double[]) 的测试(输入数组为空)
/// </summary>
[TestMethod()]
[ExpectedException( typeof (WPSYSException), " 输入数组为空 " )]
public void ToOneArrayTest_e1()
{
double [] inDoubleArray = null ;
double [] expected = null ;
double [] actual;
actual = WP.SEV001.COM.SYS.S000C11006.ToOneArray(inDoubleArray);
}
即,注意在测试方法头加上次属性
[ExpectedException(typeof(WPSYSException), "输入数组为空")]
WPSYSException:自定义异常类
输入数组为空:异常中的信息
ExpectedExceptionAttribute (Type, String) | 用预期的异常类型以及描述此异常的消息来初始化 ExpectedExceptionAttribute 类的新实例。 |
因WPSYSException为自定义的异常类,所在在测试工程中需要引用包含次异常类的dll或者加入代码
此前用以下方式也可实现指定错误信息的正确性测试,但不如上述方法规范:
///
<summary>
/// ToOneArray (double[]) 的测试(输入数组为空)
/// </summary>
[TestMethod()]
public void ToOneArrayTest_e1()
{
double [] inDoubleArray = null ;
double [] expected = null ;
double [] actual;
string strErrorInfo = " 输入数组为空 " ;
try
{
actual = DoubleArrayToOne.ToOne.ToOneArray(inDoubleArray);
}
catch (System.Exception ex)
{
Assert.AreEqual(ex.Message, strErrorInfo);
}
}
/// ToOneArray (double[]) 的测试(输入数组为空)
/// </summary>
[TestMethod()]
public void ToOneArrayTest_e1()
{
double [] inDoubleArray = null ;
double [] expected = null ;
double [] actual;
string strErrorInfo = " 输入数组为空 " ;
try
{
actual = DoubleArrayToOne.ToOne.ToOneArray(inDoubleArray);
}
catch (System.Exception ex)
{
Assert.AreEqual(ex.Message, strErrorInfo);
}
}