1. 程式人生 > >(第三周)單元測試

(第三周)單元測試

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,則生成的數字就在測試用例範圍內了。測試通過。

第二次測試:

技術分享圖片

(第三周)單元測試