項目成員:栗海輝201421123121 黃良靜201421123103
項目位址:https://coding.net/u/lenmo/p/text/git
遇到的問題:當再一次檢視以前的代碼的時候由于沒有很好的備注和沒有用英語建立未知變量導緻很多代碼忘記了原來的用途。有時候會出現一些bug,通過測試修改了一部分代碼。
a、需求分析:
在編寫程式的過程中,我們經常會遇到這樣的困惑,程式寫着寫着,就奇長無比,回頭看,已經不知道這段代碼為何物,百般思索過後終于想起來,但又忘記了目前代碼寫到了哪裡。對于一個程式來說不僅要可用,還應該追求穩定,是以應該對程式的各部分功能進行測試,盡量修複bug。利用單元測試能夠讓我們寫的代碼更加健全,能夠讓程式能夠不用牽一發而動全身,大大的改善後期維護花費的工作量。針對提取出來的計算類的接口函數做單元測試。
本次目标:
a.通過單元測試代碼,測試加法是否能正确工作;
b.通過單元測試代碼,測試加減乘除功能。
c.通過單元測試代碼,測試真分數的加減乘除能否正常工作。
1、通過測試代碼,檢測最大公約數
#include "stdafx.h"
#include "CppUnitTest.h"
#include"D:\projects\api\lhhhh\lhhhh\121.cpp"
using namespace Microsoft::VisualStudio::CppUnitTestFramework;
namespace UnitTest1
{
TEST_CLASS(UnitTest1)
{
public:
TEST_METHOD(TestMethod1)
{
Assert::AreEqual(maxNum(6, 3), 3);
// TODO: 在此輸入測試代碼
}
};
}
2、通過測試代碼,檢測加法是否正确
using namespace Microsoft::VisualStudio::CppUnitTestFramework;
namespace UnitTest1
{
TEST_CLASS(UnitTest1)
{
public:
TEST_METHOD(TestMethod1)
{
//0代表加法
Assert::AreEqual(add(4,2,0),6);
Assert::AreEqual(add(3,1,0),4);
Assert::AreEqual(lhh(4,2,3,8,3), c);
// TODO: 在此輸入測試代碼
}
};
}
3、通過測試代碼,檢測減法法是否正确
#include "stdafx.h"
#include "CppUnitTest.h"
#include"D:\projects\api\lhhhh\lhhhh\121.cpp"
using namespace Microsoft::VisualStudio::CppUnitTestFramework;
namespace UnitTest1
{
TEST_CLASS(UnitTest1)
{
public:
TEST_METHOD(TestMethod1)
{
//1代表減法
Assert::AreEqual(add(6, 3, 1), 3);
Assert::AreEqual(add(4, 2, 1), 2);
// TODO: 在此輸入測試代碼
}
};
}
4、通過測試代碼,檢測乘除是否正确
#include "stdafx.h"
#include "CppUnitTest.h"
#include"D:\projects\api\lhhhh\lhhhh\121.cpp"
using namespace Microsoft::VisualStudio::CppUnitTestFramework;
namespace UnitTest1
{
TEST_CLASS(UnitTest1)
{
public:
TEST_METHOD(TestMethod1)
{
//2,3代表乘除
Assert::AreEqual(add(4, 2, 2), 8);
Assert::AreEqual(add(4, 2, 3), 2);
// TODO: 在此輸入測試代碼
}
};
}
5、通過測試代碼,檢測真分數的加減乘除是否正确
using namespace Microsoft::VisualStudio::CppUnitTestFramework;
namespace UnitTest1
{
TEST_CLASS(UnitTest1)
{
public:
TEST_METHOD(TestMethod1)
{
//0,1,2,3代表加減乘除
string s = "19/8";
string a = "13/8";
string b = "3/4";
string c = "16/3";
Assert::AreEqual(lhh(4,2,3,8,0),s );
Assert::AreEqual(lhh(4,2,3,8,1),a);
Assert::AreEqual(lhh(4,2,3,8,2),b);
Assert::AreEqual(lhh(4,2,3,8,3), c);
// TODO: 在此輸入測試代碼
}
};
}
測試代碼截圖:
代碼覆寫率:出現了一些問題不知道為什麼代碼覆寫率始終為0
小結:絕對程式設計的心得剛看到題目的時候認為單元測試是一個很簡單的事情,但是當開始測試的時候出現了許許多多的問題,例如測試類代碼的編寫,經曆了查閱資料才解決。在此次測試也統一了命名規則,因為是第二次一起合作默契也提高了不少,在編寫的過程中也有許許多多的不規範的地方通過隊友的提示也有所改善,也懂得了卻長補短的益處自己也學到了知識。
對夥伴的評價:在我有一些不正确的或者不規範的時候回及時的提醒并修改我的錯誤,是以為很好的良師益友。雖然每個人有不同的編碼規範但是經曆過兩次的合作也能看懂得了彼此得編碼習慣,
本人的編寫代碼的能力不是很好,隊友也會主動教我一些編碼的小技巧,也會很有耐心的幫我解決問題。