日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

结对编程2——单元测试

發(fā)布時間:2025/3/18 编程问答 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 结对编程2——单元测试 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

碼市地址:https://git.coding.net/cjz113/jiedui2.git

結(jié)對成員:201421123111  201421123113

題目描述:

  上一周大家為四則運算程序設(shè)計了2-3個新功能,本次在隔了一周之后,我們循序漸進(jìn)地進(jìn)階。本次目標(biāo):

  • 把計算模塊提取出來,單獨創(chuàng)建一個類。
  • 針對提取出來的計算類的接口函數(shù)做單元測試。
  • 通過單元測試代碼,測試加法是否能正確工作;
  • 通過單元測試代碼,測試加減乘除功能。
  • 通過單元測試代碼,測試計算類對于各種參數(shù)的支持:
  • 題目要求:

  • 結(jié)對編程實現(xiàn)上述功能,同樣的,在程序正式開發(fā)之前,請先預(yù)估下PSP每個環(huán)節(jié)的消耗時間(分鐘),并在過程中統(tǒng)計實際耗時(分鐘),最后提交PSP表格。依然注意,這個主要是給你們自己看的,不必造假數(shù)據(jù)。
  • 繼續(xù)兩人結(jié)對協(xié)作,把編碼規(guī)范、領(lǐng)航員和駕駛員角色互換做到位。
  • 單元測試: 有單元測試保證,有代碼覆蓋率。
  • 提取計算類:

    類定義:

    class cla { public:string integer(int op,int x,int y);string fraction(int op,int a,int b,int c,int d);static int maxNumber(int k, int l); };

    整數(shù):

    string integer(int op, int x, int y) {char Operator[] = { '+', '-', '*', '/' };string result;int element, denominator; //定義答案分子、分母int maxNum; //定義公約數(shù)char answer[10]; //答案if (Operator[op] == Operator[0]){int n;n = x + y;result = sprintf_s(answer, "%d", n);}elseif (Operator[op] == Operator[1]){int n;n = x - y;result = sprintf_s(answer, "%d", n);}elseif (Operator[op] == Operator[2]){int n;n = x*y;result = sprintf_s(answer, "%d", n);}elseif (Operator[op] == Operator[3]){element = x;denominator = y;maxNum = cla::maxNumber(element, denominator);element = element / maxNum;denominator = denominator / maxNum;if (denominator != 1){result = sprintf_s(answer, "%d/%d", element, denominator);}else{result = sprintf_s(answer, "%d", element);}}elseif (Operator[op] != Operator[0] && Operator[op] != Operator[1] && Operator[op] != Operator[2] && Operator[op] != Operator[3]){result = "error";}return result; }

    分?jǐn)?shù):

    string fraction(int op, int a, int b, int c, int d) {char Operator[] = { '+', '-', '*', '/' };string result;int element, denominator; //定義答案分子、分母int maxNum; //定義公約數(shù)char answer[10]; //答案if (Operator[op] == Operator[0]){element = (b*c) + (a*d);denominator = a*c;maxNum = cla::maxNumber(element, denominator);element = element / maxNum;denominator = denominator / maxNum;if (denominator != 1){result = sprintf_s(answer, "%d/%d", element, denominator);}else{result = sprintf_s(answer, "%d", element);}}elseif (Operator[op] == Operator[1]){element = (b*c) - (a*d);denominator = a*c;maxNum = cla::maxNumber(element, denominator);element = element / maxNum;denominator = denominator / maxNum;if (denominator != 1){result = sprintf_s(answer, "%d/%d", element, denominator);}else{result = sprintf_s(answer, "%d", element);}}elseif (Operator[op] == Operator[2]){element = b*d;denominator = a*c;maxNum = cla::maxNumber(element, denominator);element = element / maxNum;denominator = denominator / maxNum;if (denominator != 1){result = sprintf_s(answer, "%d/%d", element, denominator);}else{result = sprintf_s(answer, "%d", element);}}elseif (Operator[op] == Operator[3]){element = b*c;denominator = a*d;maxNum = cla::maxNumber(element, denominator);element = element / maxNum;denominator = denominator / maxNum;if (denominator != 1){result = sprintf_s(answer, "%d/%d", element, denominator);}else{result = sprintf_s(answer, "%d", element);}}elseif (Operator[op] != Operator[0] && Operator[op] != Operator[1] && Operator[op] != Operator[2] && Operator[op] != Operator[3]){result = "error";}return result; }

    取最大公約數(shù):

    static int maxNumber(int k, int l) {while (k%l != 0){int t = k%l;k = l;l = t;}return l; }

    測試用例:

    整數(shù)計算測試用例:

    TEST_METHOD(integerTest){//TrivialCalculator test;string actual = test->integer(0, 1, 2);string expected = "3";Assert::AreEqual(expected, actual);actual = test->integer(0, 2, 1);expected = "2";Assert::AreNotEqual(expected, actual);actual = test->integer(1, 1, 2);expected = "-1";Assert::AreEqual(expected, actual);actual = test->integer(1, 2, 1);expected = "2";Assert::AreNotEqual(expected, actual);actual = test->integer(2, 1, 2);expected = "2";Assert::AreEqual(expected, actual);actual = test->integer(2, 2, 1);expected = "1";Assert::AreNotEqual(expected, actual);actual = test->integer(3, 1, 2);expected = "1 / 2";Assert::AreEqual(expected, actual);actual = test->integer(3, 2, 1);expected = "2";Assert::AreNotEqual(expected, actual);}

    分?jǐn)?shù)計算測試用例:

    TEST_METHOD(fractionTest){string actual = test->fraction(0, 1, 2, 1, 2);string expected = "1";Assert::AreEqual(expected, actual);actual = test->fraction(0, 1, 2, 1, 2);expected = "2";Assert::AreNotEqual(expected, actual);actual = test->fraction(1, 1, 2, 1, 2);expected = "0";Assert::AreEqual(expected, actual);actual = test->fraction(1, 1, 2, 1, 2);expected = "2";Assert::AreNotEqual(expected, actual);actual = test->fraction(2, 1, 2, 1, 2);expected = "1 / 4";Assert::AreEqual(expected, actual);actual = test->fraction(2, 1, 2, 1, 2);expected = "1";Assert::AreNotEqual(expected, actual);actual = test->fraction(3, 1, 2, 1, 2);expected = "1";Assert::AreEqual(expected, actual);actual = test->fraction(3, 1, 2, 1, 2);expected = "2";Assert::AreNotEqual(expected, actual);}

    最大公約數(shù)測試用例:

    TEST_METHOD(maxNumberTest){int actual = test->maxNumber(6, 3);int expected = 3;Assert::AreEqual(expected, actual);actual = test->maxNumber(4, 2);expected = 3;Assert::AreNotEqual(expected, actual);}

    結(jié)果:

    我們試了很多次,也問過同學(xué),查了百度,以為是插件問題,也在vs2010、vs2012、vs2013、vs2015都試過,上最終還是沒能成功測試

    小結(jié)與感受:

    自學(xué)能力真的太重要了,而我明顯這方面還很弱,c++的測試以前老師沒講,我們需要自己查資料自己學(xué)習(xí),看著很多同學(xué)慢慢的都掌握了,測試也在有條不紊的進(jìn)行,而我們還不知所措,無奈只能向同學(xué)求助,按照同學(xué)給的教程鏈接http://www.cnblogs.com/xiehongfeng100/p/4438076.html一步步進(jìn)行操作,一開始沒有注意到要下載Unit Test Generator工具,一直沒辦法測試成功,耗了很長時間,后來想起來取下載時,出現(xiàn)了這種情況:

    那就先去下載.NET Framework吧,卻又出現(xiàn)了這種情況:

    。。。

    自己下的軟件不行,那就用一下同學(xué)的軟件吧,按照同學(xué)耐心指導(dǎo)的步驟做下來,在測試的時候,還是出現(xiàn)了:

    這樣幾個錯誤,找了好久一直不知道該如何修改。。。

    單元測試就這么失敗了,經(jīng)過這次作業(yè),我更加深刻的體會到自己自主解決問題的能力還是非常差的,急需提高啊

    結(jié)對照片:

    PSP:

    ?

    轉(zhuǎn)載于:https://www.cnblogs.com/cxx111/p/6639268.html

    總結(jié)

    以上是生活随笔為你收集整理的结对编程2——单元测试的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。