网站怎么添加后台,做肝病科网站,上海网站建设优化,西安企业自助建站目录 环境准备GoogleTest 环境准备
git clone https://github.com/google/googletest.git说cmkae版本过低了#xff0c;解决方法
进到googletest中
cmake CMakeLists.txt
make
sudo make installls /usr/local/lib存在以下文件说明安装成功 中间出了个问题就是#xff0c;… 目录 环境准备GoogleTest 环境准备
git clone https://github.com/google/googletest.git
说cmkae版本过低了解决方法
进到googletest中
cmake CMakeLists.txt
make
sudo make installls /usr/local/lib存在以下文件说明安装成功 中间出了个问题就是总是出现链接不成功导致库导入不进去 可以对G命令加上-L编译的命令这样就指定了库的搜索路径。
g sample1.cc sample1_unittest.cc -o sample1 -L/usr/local/lib -lgtest -lgtest_main -lpthread GoogleTest
单元测试是用来对一个模块、一个函数或者一个类来进行正确性检测的测试工作。 比如我们测试一个岛问题的解决方法
#include iostream
#include initializer_list
#include vector
#include gtest/gtest.husing namespace std;class IslandProblem {
public:using Matrix vectorvectorchar;IslandProblem(const initializer_listvectorchar list) {_islands.assign(list);}int Do() {int num 0;for (int row 0; row (int)_islands.size(); row) {for (int col 0; col (int)_islands[row].size(); col) {if (canUnion(row, col)) {num;unionIsland(row, col);}}}return num;}protected:bool canUnion(int row, int col) {if (row 0 || row (int)_islands.size())return false;if (col 0 || col (int)_islands[row].size())return false;if (_islands[row][col] ! 1)return false;return true;}void unionIsland(int row, int col) {_islands[row][col] 2;// upif (canUnion(row-1, col)) unionIsland(row-1, col);// leftif (canUnion(row, col-1)) unionIsland(row, col-1);// downif (canUnion(row1, col)) unionIsland(row1, col);// rightif (canUnion(row, col1)) unionIsland(row, col1);}private:Matrix _islands;
};TEST(IslandProblem, logic) {IslandProblem ip1{{1,1,1,1},{1,0,1,1},{0,0,0,0},{1,0,1,0}};EXPECT_EQ(ip1.Do(), 3);IslandProblem ip2{{1,0,1,1},{1,0,1,1},{0,0,0,0},{1,0,1,0}};EXPECT_EQ(ip2.Do(), 4);
}TEST(IslandProblem, boundary) {IslandProblem ip1{{1,1,1,1},{1,0,0,1},{1,0,0,1},{1,1,1,1}};EXPECT_EQ(ip1.Do(), 1);IslandProblem ip2{};EXPECT_EQ(ip2.Do(), 0);
}TEST(IslandProblem, exception) {IslandProblem ip1{{-1,1,1,1},{1,0,0,1},{1,0,0,1},{1,1,1,1}};EXPECT_EQ(ip1.Do(), 1);
}解决方法要考虑逻辑问题功能正确边界问题异常情况。TEST的测试案例中已经把这些问题考虑进去了。 然后实际去测试说明解决方法能够考虑以上三种情况