【发布时间】:2016-05-12 19:34:32
【问题描述】:
我正在尝试验证返回的异常和消息,但我在此消息中有一个可变的文件名。是否可以仅在一种方法中使用单元测试来做到这一点?
public static string FileName
{
get
{
return "EXT_RF_ITAUVEST_201605091121212";
}
}
[TestMethod()]
[ExpectedException(typeof(Exception), String.Format("Error on file {0}", FileName))]
public void ValidarNomeArquivo_DataNomeIncorreta_Mensagem()
{
throw new Exception(String.Format("Error on file {0}", FileName));
}
上面的代码返回错误“属性参数必须是属性参数类型的常量表达式、typeof表达式或数组创建表达式。”。
【问题讨论】:
-
您拥有的代码正在验证
Exception是否正确抛出异常。我希望您想要测试 /your/ 代码,而不是 Microsoft 的。在这种情况下,文件名将像往常一样从您的类/方法中抛出。 -
有一个控制台应用程序读取数据库,获取文件名和 URL 服务,然后创建一个实例并调用将文件名作为对象属性传递的方法。我需要抛出异常的原因是控制台应用程序处理该异常以记录和发送电子邮件。但是我正在创建的这个测试方法只是测试一个文件的验证,所以,我认为目前所有的过程都不会发生。
标签: c# unit-testing expected-exception