在我的项目中,我重载了函数GetPrimeList(int max)和GetPrimeList(long max)。
GetPrimeList(int max)是正确实现的,但是对于10以下的数字(目前),参数为long的参数应该会失败;
我写了测试
[TestCase(1, 0)]
[TestCase(3, 1)]
public void GetPrimeList_ShouldReturnAllPrimesBelowGivenNumber(int max, int result)
{
var primes = PrimeHelper.GetPrimeList(max);
Assert.AreEqual(result, primes.Count);
}
[TestCase(1, 0)]
[TestCase(3, 1)]
public void GetPrimeList_ShouldReturnAllPrimesBelowGivenNumber(long max, int result)
{
var primes = PrimeHelper.GetPrimeList(max);
Assert.AreEqual(result, primes.Count);
}
现在,当我在正常模式下运行测试时,它们都会通过,但是当我在调试模式下运行它们时,测试long参数会失败(正如预期的那样)。
有单独的测试项目;当我在原始项目中调用函数时,我无法重现行为(尝试比较Release和Debug模式)。我也尝试在我的测试项目中关闭代码优化,但它没有解决问题。
知道如何修复我的测试项目吗?
答案 0 :(得分:1)
您是否可以尝试将最后一个“GetPrimeList_ShouldReturnAllPrimesBelowGivenNumber”重命名为“GetLongPrimeList_ShouldReturnAllPrimesBelowGivenNumber”并再次检查?只觉得它可能很重要。我的假设是在正常模式下不会调用最新的测试。