【发布时间】:2018-06-20 08:51:49
【问题描述】:
我有一个简单的方法,它需要一个整数值作为参数:
public const string IndexIsNotANumber = "The given index is not a number!";
public Fibonacci() { }
public int GetNumberByIndex(int index)
{
try
{
Convert.ToInt32(index);
}
catch
{
throw new FormatException(IndexIsNotANumber);
}
}
以及适当的测试:
[TestMethod]
public void PassChar()
{
//arrange
char index = 'A';
Fibonacci fibonacci = new Fibonacci();
//act
try
{
int b = fibonacci.GetNumberByIndex(index);
}
catch (FormatException e)
{
// assert
StringAssert.Contains(e.Message, Fibonacci.IndexIsNotANumber);
return;
}
Assert.Fail("No exception was thrown.");
}
问题是测试总是失败并出现“未引发异常”错误 那么如何确保给定的参数不是 char 呢?
【问题讨论】:
-
是 convert.toInt32 正在转换 'A' 的 ascii 值
-
@shyam 我知道。这只是我尝试过的众多方法之一。
标签: c# types char int comparison