我被要求使用预制的回文代码编写测试程序。我们被告知不要修复代码,而是使用Test查找问题。我花了几个小时盯着这个,我只需要指导。我在测试字符串回文和数字回文时发现了很多东西,没有使用数字。也许比我自己制作它更容易,但是以任何方式帮助的链接或指导都非常感激。
public static Boolean isPalindrome(double num)
{
if (num >= 10000 && num < 100000)
{
double oldNum = num;
double FirstDig = num % 10;
num = num - (num % 10);
double SecondDig = num % 100;
num = num - (num % 100);
double ThirdDig = num % 1000;
num = num - (num % 1000);
double FourthDig = num % 10000;
num = num - (num % 10000);
double FifthDig = num % 100000;
num = num - (num % 100000);
FirstDig = FirstDig / 10;
SecondDig = SecondDig / 100;
ThirdDig = ThirdDig / 1000;
FourthDig = FourthDig / 10000;
FifthDig = FifthDig / 100000;
double flippedNum = FirstDig + SecondDig + ThirdDig + FourthDig + FifthDig;
flippedNum = flippedNum * 100000;
if (flippedNum == oldNum)
{
return true;
}
else
{
return false;
}
}
else
{
return false;
}
}
}
答案 0 :(得分:2)
编写一个带有数字的单元测试,将其传递给此函数,并将预期结果与实际结果进行比较。使用NUnit3,它可能如下所示:
[TestCase(101d, true)]
[TestCase(100d, false)]
public void SutConfirmsIfNumberIsPalindrome(double input, bool expectedOutcome) {
var outcome = isPalindrome(input);
Assert.True(outcome == expectedOutcome);
}
答案 1 :(得分:0)
编写测试时,方法的实现无关紧要。相反,您需要知道给定输入的预期输出。我建议列出这些,然后对你能想到的每个输入实施一个测试。从简单开始,随着时间的推移会有更多的想法,输入将更加复杂。