gpt4 book ai didi

C++ CppUnitTest (CPPUNIT_ASSERT_EQUAL)

转载 作者:行者123 更新时间:2023-11-30 04:38:15 24 4
gpt4 key购买 nike

我正在尝试使用 Ubuntu NetBeans 对我的程序进行一些 CppUnit 测试,但我一直遇到类似的错误(无效使用 void 表达式)。我不确定出了什么问题。任何帮助将不胜感激。

错误是这样的:

g++    -c -O2 -I/usr/include/cppunit -MMD -MP -MF build/Release/GNU-Linux-x86/AssignmentTest.o.d -o build/Release/GNU-Linux-x86/AssignmentTest.o AssignmentTest.cpp
AssignmentTest.cpp: In member function ‘void AssignmentTest::testTitle()’:
AssignmentTest.cpp:10: error: invalid use of void expression

我的 AssignmentTest.cpp:

#include "AssignmentTest.h"
#include "GetInfo.h"

CPPUNIT_TEST_SUITE_REGISTRATION (AssignmentTest);

void AssignmentTest::testTitle()
{
//info2 = "";
//CPPUNIT_ASSERT(info2.testTitle(info2));
CPPUNIT_ASSERT_EQUAL(info2, info2.GetTitle());
}

我的 AssignmentTest.h:

#ifndef _ASSIGNMENTTEST_H
#define _ASSIGNMENTTEST_H
#include <cppunit/TestCase.h>
#include <cppunit/extensions/HelperMacros.h>
#include <vector>
#include "GetInfo.h"

class AssignmentTest : public CppUnit::TestFixture
{
CPPUNIT_TEST_SUITE (AssignmentTest);
CPPUNIT_TEST (testTitle);
CPPUNIT_TEST (testDirector);
CPPUNIT_TEST (testReleaseDate);
CPPUNIT_TEST (testPlot);
CPPUNIT_TEST (testRunTime);
CPPUNIT_TEST_SUITE_END ();
private:
GetInfo info1;
GetInfo info2;
GetInfo info3;
GetInfo info4;
GetInfo info5;
GetInfo info6;
public:

protected:
void testTitle();
void testDirector();
void testReleaseDate();
void testPlot();
void testRunTime();
};
#endif

我的 GetInfo.h:

#include <string>
#ifndef _GETINFO_H
#define _GETINFO_H

using namespace std;

class GetInfo
{
public:
GetInfo();
void GrabMovie(void);
void GetTitle(void);
void GetDirector(void);
void GetReleaseDate(void);
void GetPlot(void);
void GetRunTime(void);
private:

};
#endif

最佳答案

您要比较什么是否相等?现在,您正在将 info2info2.GetTitle() 进行比较。前者是一个对象。根据 GetInfo.h,后者返回 void——即什么也没有。

很有可能,您的测试应该看起来更像

CPPUNIT_ASSERT_EQUAL("Expected Title", info2.GetTitle());

并且您所有的“获取”函数实际上应该返回您得到的任何内容。

关于C++ CppUnitTest (CPPUNIT_ASSERT_EQUAL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3259502/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com