(第三周)單元測試
阿新 • • 發佈:2018-10-08
pass 需要 生成 運算 all int nunit 行修改 環境
此作業要求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:
public void TestRandNumber() { int i = t.RandNumber(); if (i > 0 & i < 20) Assert.Pass(); else Assert.Fail(); }
測試用例中要求我們的表達式隨機生成數字在0到20之間,但是程序中寫的是隨機生成100以內的數字,這裏的bug需要在生成數字的方法裏進行修改。
public int RandNumber()//生成一個0到100的數 { Random rn = new Random(); return rn.Next(100); }
這個地方利用Next()方法將裏面的100改成20,則生成的數字就在測試用例範圍內了。測試通過。
第二次測試:
(第三周)單元測試