0
我剛剛開始學習googletesting,我正在玩弄它。 我想使用參數化測試來檢查一個類的函數成員返回的值是否應該是。 我已經聲明瞭一個名爲'myClass'的類,其中我使用構造函數設置了一個變量的值,並且我還有一個公共函數'retA()',它返回它的值。GoogleTest中的參數化測試無法按預期工作
然後我聲明瞭一個fixture類,其中創建了一個'myClass'對象,使用構造函數創建成員a,並將obj.retA()函數的值賦值給int值'result'。然後,我寫了一個'TEST_P',用於檢查結果是否符合我期望的結果,並安裝TEST_P。然後在主要我開始所有的測試。當我只能傳遞不應該使測試失敗的說法,我不明白爲什麼:((結果應該是3,我認爲)
請幫我清楚這件事。謝謝
我的測試失敗。
#include "stdafx.h"
#include "gtest\gtest.h"
#include "gmock\gmock.h"
#include "Tests.cpp"
class myClass
{
private:
int a;
public:
myClass() {}
myClass(int a) { a = this->a; }
void setA(int val) { a = val; }
int retA() { return a; }
};
class myFixture : public ::testing::TestWithParam<int>
{
public:
int result;
myFixture()
{
myClass obj(GetParam());
result = obj.retA();
}
};
TEST_P(myFixture, Test1) {
// Inside a test, access the test parameter with the GetParam() method
// of the TestWithParam<T> class:
ASSERT_EQ(3, result);
}
INSTANTIATE_TEST_CASE_P(
InstantiationName, myFixture, ::testing::Values(3);
);
int main(int argc, char** argv)
{
::testing::InitGoogleMock(&argc, argv);
return RUN_ALL_TESTS();
}