C++ C++;(14) -谷歌测试未定义标识符 为什么googletest无法获取curl\u客户端类对象指针?我在CurlClientTest中正确初始化了它吗
测试代码:C++ C++;(14) -谷歌测试未定义标识符 为什么googletest无法获取curl\u客户端类对象指针?我在CurlClientTest中正确初始化了它吗,c++,c++14,googletest,C++,C++14,Googletest,测试代码: #include "../src/include/CurlClient.h" #include <gtest/gtest.h> #include <string> class CurlClientTest : testing::Test { public: SimpleCURLClient::CurlClient *curl_client; virtual void SetUp() { curl_client = new SimpleCURL
#include "../src/include/CurlClient.h"
#include <gtest/gtest.h>
#include <string>
class CurlClientTest : testing::Test {
public:
SimpleCURLClient::CurlClient *curl_client;
virtual void SetUp() {
curl_client = new SimpleCURLClient::CurlClient(test_url);
}
virtual void TearDown() {
delete curl_client;
}
private:
std::string test_url = "http://postman-echo.com/get?foo1=bar1&foo2=bar2";
};
TEST(CurlClientTest, CurlClientInitTest) {
std::cout << curl_client->getCurlUrl << "\n";
}
答案(由Chris Olsen在评论中给出):
我们必须使用TEST\u F
而不是TEST
。同时将CurlClientTest更改为public。下面是测试工作的代码
#include "../src/include/CurlClient.h"
#include <gtest/gtest.h>
#include <string>
class CurlClientTest : public testing::Test {
public:
SimpleCURLClient::CurlClient *curl_client;
virtual void SetUp() {
curl_client = new SimpleCURLClient::CurlClient(test_url);
}
virtual void TearDown() {
delete curl_client;
}
private:
std::string test_url = "http://postman-echo.com/get?foo1=bar1&foo2=bar2";
};
TEST_F(CurlClientTest, CurlClientInitTest) {
std::cout << curl_client->getCurlUrl() << "\n";
}
#include“./src/include/CurlClient.h”
#包括
#包括
类CurlClientTest:公共测试::测试{
公众:
SimpleCURLClient::CurlClient*curl\u客户端;
虚拟空间设置(){
curl\u client=newsimplecurlclient::CurlClient(test\u url);
}
虚拟void拆卸(){
删除客户机;
}
私人:
std::字符串测试\u url=”http://postman-echo.com/get?foo1=bar1&foo2=bar2";
};
测试F(CurlClientTest,CurlClientInTest){
std::cout getCurlUrl()使用fixture的测试需要使用TEST\F
宏。有关更多信息,请参阅Google测试入门中的
TEST_F(CurlClientTest, CurlClientInitTest) {
std::cout << curl_client->getCurlUrl << "\n";
}
TEST\u F(CurlClientTest,curlclientinitest){
std::cout getCurlUrl您是否打算使用TEST\u F
?您所说的“创建未声明的curl\u客户端指针”是什么意思?您遇到的错误具体是什么?请包括编译器的完整错误。@布赖恩,对不起,忘记添加错误,现在添加了。@chrisosen啊,是的!这就是问题所在,我必须使用TEST_F,谢谢!您可以提交您自己问题的答案,以便将其视为“已回答”。(人们通常会给@ChrisOlsen一个先写一篇的机会。)
#include "../src/include/CurlClient.h"
#include <gtest/gtest.h>
#include <string>
class CurlClientTest : public testing::Test {
public:
SimpleCURLClient::CurlClient *curl_client;
virtual void SetUp() {
curl_client = new SimpleCURLClient::CurlClient(test_url);
}
virtual void TearDown() {
delete curl_client;
}
private:
std::string test_url = "http://postman-echo.com/get?foo1=bar1&foo2=bar2";
};
TEST_F(CurlClientTest, CurlClientInitTest) {
std::cout << curl_client->getCurlUrl() << "\n";
}
TEST_F(CurlClientTest, CurlClientInitTest) {
std::cout << curl_client->getCurlUrl << "\n";
}