gpt4 book ai didi

c# - 是否可以将属性赋予 ExpectedException 中的消息?

转载 作者:行者123 更新时间:2023-11-30 23:25:31 26 4
gpt4 key购买 nike

我正在尝试验证返回的异常和消息,但我在此消息中有一个可变的文件名。是否可以只用一种方法使用单元测试来做到这一点?

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 表达式或数组创建表达式。”。

最佳答案

在您的情况下,我不会使用 ExpectedException,而只是手动执行它执行的逻辑。

    public static string FileName
{
get
{
return "EXT_RF_ITAUVEST_201605091121212";
}
}

[TestMethod()]
public void ValidarNomeArquivo_DataNomeIncorreta_Mensagem()
{
//This try block must contain the entire function's logic,
// nothing can go after it to get the same behavor as ExpectedException.
try
{
throw new Exception(String.Format("Error on file {0}", FileName));

//This line must be the last line of the try block.
Assert.Fail("No exception thrown");
}
catch(Exception e)
{
//This is the "AllowDerivedTypes=false" check. If you had done AllowDerivedTypes=true you can delete this check.
if(e.GetType() != typeof(Exception))
throw;

if(e.Message != String.Format("Error on file {0}", FileName))
throw;

//Do nothing here
}
}

关于c# - 是否可以将属性赋予 ExpectedException 中的消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37195952/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com