如何知道是否存在异常抛出的对象

时间:2017-03-03 23:33:41

标签: c# unit-testing try-catch log4net

您好我们正在开发一个应用程序,我们需要连续执行多个任务,这可能需要很长时间。因此,我们创建了一个班级,它是一个"跑步者"在那里我发送了他需要做的任务清单,他一直这样做直到完成。因此,如果在运行所有任务时出现异常,他只需将其抛给log4net,这样我们就可以调试一次失败的所有任务。所以我对单元测试没有实验,我现在尝试使用它。我的任务是多文件读取。我发送了许多不同上下文的文件,所以如果我改变了某些内容并且它不起作用,那将是我的错。但是,如果我使用log4net处理它,如何知道是否会出现异常?我该怎么做才能实现呢?

class Runner{
void addTask(...);
void execute(){
  foreach(var task in ListOfTask){
    try
    { DoSomeThing(); }
    catch(Exception ex)
    { Log.Error("Message", ex); }
  }
}

class XMLReader{
string Read();
}

[TestClass]
class Test{

  [TestMethod]
  [DeploymentItem("filePath1")]
  [DeploymentItem("filePath2")]
  [DeploymentItem("filePath3")]
  void TestRunner(){
    Runner r = new Runner();
    r.addTask("filePath1");
    r.addTask("filePath2");
    r.addTask("filePath3");
    r.execute();
  }
}

1 个答案:

答案 0 :(得分:2)

你不能这样,因为你只记录异常。您应该返回某种结果(“ListOfResult”也许,如果一个任务失败但你希望其余的任务继续),或者如果任何失败应该停止该过程,则抛出异常。