C++ 使用GTest测试方法?

C++ 使用GTest测试方法?,c++,visual-studio,unit-testing,nunit,googletest,C++,Visual Studio,Unit Testing,Nunit,Googletest,我为ex:Func()提供了一个方法,其中Func返回一个结构对象 somestruct Func() { } struct somestruct { int a; int response; }; 根据参数响应的值,我的测试将通过或失败 如果响应成员返回0,则我的测试通过 TEST(Testcase, Testcasename) { somestruct obj; obj = Func()

我为ex:Func()提供了一个方法,其中Func返回一个结构对象

    somestruct Func()
    {

    }

    struct somestruct
    {
    int a;
    int response;
    };
根据参数响应的值,我的测试将通过或失败

如果响应成员返回0,则我的测试通过

    TEST(Testcase, Testcasename)
    {
    somestruct obj;
    obj = Func()
    EXPECT_EQ(0, obj.response);
    }
但如果响应参数值为1、2或3,则需要调用其他方法Func1()或Func2()&如果值为3,则应调用Func2()和Func3()。如果这些方法调用成功返回,则对Func()的调用将返回0作为响应


我不知道应该如何编写测试用例语句“EXPECT_EQ etc.”对于这种方法,请帮助我提供您的输入。

了解参数化测试。当每个输入有不同的路径时,参数化测试是不好的。你到底想达到什么目的?如何在被测单元中获得响应参数?为什么给定的获取参数后面必须有对不同功能的调用?@Yksisarvinen响应参数的值由远程服务器提供,例如,如果接收到响应值2,则我必须更新我的生物识别设备中的某些证书。基本上,Func()检查我的设备是否与最新的更改同步。在我看来,您的测试是相反的。为了测试代码的反应,应该模拟远程服务器的响应。(和远程服务器也应测试ofc,但应单独测试)。所以,如果我理解正确,如果您的类收到的
响应
等于1,那么它应该调用
Func1()
?那么这就是你应该如何测试它。用
somestruct
为类提供
response
等于
1
的内容,并模拟调用
Func1
,以便捕获它们。请提供一些示例。