嗨,我们正在开发一个应用程序,我们需要在其中连续执行多项任务,而这些任务可能需要很长时间。所以我们创建了一个类,它是一个“跑步者”,我在那里发送他需要做的任务列表,他会一直做直到完成。因此,如果他在运行所有任务时出现异常,他只需将其抛出到 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();
}
}
您不能这样做,因为您只是在记录异常。您应该返回某种结果(也许是“ListOfResult”,如果一个任务失败但您希望其余任务继续执行没关系),或者如果任何失败都应该停止该过程,则抛出异常。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句