赋值运算符函数
系统:Ubuntu 20.04
1. 安装gtest测试框架
这一部分是整理自
How To Install/Use Google C++ Test Framework
安装指令:
sudo apt-get install libgtest-dev
sudo apt-get install cmake
cd /usr/src/gtest
sudo cmake CMakeLists.txt
sudo make
sudo cp *.a /usr/lib
安装完成后可以在源文件中使用下面语句包含库
#include <gtest/gtest.h>
异常:
| 错误 | 解决办法 |
|---|---|
执行apt-get install时出现:E: Could not get lock /var/lib/dpkg/lock... |
sudo killall apt apt-get |
2. 使用vim编辑器
set expandtab使用 space 代替 tabset shiftwidth=2自动缩进的宽度两个空格set num显示行号
3. 书写CMyString类
class CMyString {
public:
CMyString(const char* pData = nullptr);
CMyString& operator=(const CMyString& str);
char* getData();
private:
char* m_pData;
};
CMyString::CMyString(const char* pData) {
m_pData = new char[strlen(pData)+1];
strcpy(m_pData, pData);
}
CMyString& CMyString::operator=(const CMyString &str) {
if(this == &str){
return *this;
}
delete []m_pData;
m_pData = nullptr;
m_pData = new char[strlen(str.m_pData)+1];
strcpy(m_pData,str.m_pData);
return *this;
}
char* CMyString::getData() {
return this->m_pData;
}
4. 书写测试用例
#include <gtest/gtest.h>
#include "CMyString.cpp"
TEST(RootTest, CopyTo) {
const char* rawStr = "raw";
const char* laterStr = "later";
CMyString raw(rawStr);
CMyString later(laterStr);
later = raw;
ASSERT_STREQ(raw.getData(),later.getData());
}
int main(int argc, char **argv) {
testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
5. 执行测试
make
./runTest

浙公网安备 33010602011771号