如题:
public void HelloUT()
{
try{
var db= database.connection();
var returnValue = db.get("select * from people");
return returnValue;
}
catch(Exception ex)
{
Log4net.log(ex.Message);
}
}
问题是如何使用UT 测试HelloUT 方法的时候 保证catch 里面的方法也会覆盖???
和有没有参数无关,比如如下代码
void writetolog(string s)
{
try
{
System.IO.AppendAllText("log.txt", s);
}
catch (FileNotFoundException ex)
{
...
}
}
难道你就能控制catch么。
你要触发,唯一的办法就是在被测试代码内部嵌入代码,比如
try{
#if UNITTEST
throw new Exception();
#endif
var db= database.connection();
var returnValue = db.get("select * from people");
return returnValue;
}
或者你不直接throw,而是调用一个方法,将丢出什么异常,如何丢出异常的决定权交给这个函数实现。