20180925-4 单元测试
此作业要求https://edu.cnblogs.com/campus/nenu/2018fall/homework/2146
git地址: https://git.coding.net/gongylx/f4.git
单元测试代码详见上述git地址中的Test_f4.cs
结对伙伴:公冶令鑫
集成环境:Visual Studio 2017
编程语言:C#
测试框架:NUnit3
要求1:对每个功能,先给出测试用例,然后再编码功能。请注意把测试用例视为功能需求完成的检验指标
1.测试生成数字
TestRandNumber()
因为四则运算中的数字我们不想要过大的数字,所以我们程序中设计的是1-20的正整数。以上测试代码测试的是我们产生的随机数是否为1-20的正整数,测试不通过。
2.测试答案是否产生无限小数
TestLD()
由于我们不希望四则运算相除后产生无限小数,所以我们设计了只能使除数被2的n次方和5的n次方整除。以上测试代码测试了除数是否只能被2和5整除,测试通过。
3.测试运算符是否只包含加减乘除
由于我们要做的是含有加减乘除的四则运算。以上代码测试了输入的运算符是否为加减乘除,测试通过。
4.简单测试是否表达式可以正确运算
由于我们需要测试我们所涉及的代码是否能成功的准确计算答案,所以我们先计算一个简单的表达式1+1是否等于2。测试通过。
5.测试包含括号的表达式是否可以正确运算
由于我们需要测试我们所涉及的代码是否能成功的准确计算答案,所以我们采用以上测试代码测试(1+2)*(3+5)的答案是否为24。测试通过。
要求2:在博客报告测试用例全部fail 到 全部pass 的过程,报告事实 (fail到修改代码或者测试用例,到pass) 以及收获
第一次测试:
fail1:
1 public void TestRandNumber() 2 { 3 int i = t.RandNumber(); 4 if (i > 0 & i < 20) 5 Assert.Pass(); 6 else 7 Assert.Fail(); 8 }
测试用例中要求我们的表达式随机生成数字在0到20之间,但是程序中写的是随机生成100以内的数字,这里的bug需要在生成数字的方法里进行修改。
1 public int RandNumber()//生成一个0到100的数 2 { 3 Random rn = new Random(); 4 return rn.Next(100); 5 }
这个地方利用Next()方法将里面的100改成20,则生成的数字就在测试用例范围内了。测试通过。
第二次测试: