0
我是gmock測試的新手。我有Foo類,它具有成員函數set()和start()。開始()觸發set()和類成員member1設置爲1,member2設置爲2.當我嘗試在gmock中測試這我看不到這些成員設置。爲什麼,我該如何解決這個問題?謝謝。gmock EXPECT_CALL不調用測試類中的方法
test.h文件
#ifndef TEST_H_
#define TEST_H_
#include <gtest/gtest.h>
#include <gmock/gmock.h>
class Foo
{
public:
Foo();
virtual~Foo();
int member1;
int member2;
virtual void set();
virtual void start();
};
class MockFoo:public Foo
{
public:
MOCK_METHOD0(set, void());
};
#endif /* TEST_H_ */
simpleGmock.cpp文件
#include <stdio.h>
#include <stdlib.h>
#include "test.h"
using ::testing::AtLeast;
using ::testing::Return;
Foo::Foo(){};
Foo::~Foo(){};
void Foo::set()
{
member1=1;
member2=2;
}
void Foo::start()
{
this->set();
}
TEST(simplesuite, callmethods)
{
MockFoo mockfoo_obj;
EXPECT_CALL(mockfoo_obj, set())
.Times(AtLeast(1))
.WillOnce(::testing::Return());
mockfoo_obj.start();
ASSERT_EQ(mockfoo_obj.member1,1);
}
int main(int argc, char *argv[]) {
::testing::InitGoogleMock(&argc, argv);
return RUN_ALL_TESTS();
}
,其結果是下面:
[==========] Running 1 test from 1 test case.
[----------] Global test environment set-up.
[----------] 1 test from simplesuite
[ RUN ] simplesuite.callmethods
simpleGmock.cpp:39: Failure
Expected: mockfoo_obj.member1
Which is: -528070912
To be equal to: 1
[ FAILED ] simplesuite.callmethods (0 ms)
[----------] 1 test from simplesuite (0 ms total)
[----------] Global test environment tear-down
[==========] 1 test from 1 test case ran. (1 ms total)
[ PASSED ] 0 tests.
[ FAILED ] 1 test, listed below:
[ FAILED ] simplesuite.callmethods
1 FAILED TEST
它也沒有工作。 –