1
추상 클래스를 모의하려고하는데 GMock 헤더 내부에서 오류를 계속 컴파일합니다. 나는 실제 코드를 공유 할 수 없지만 거의 같은 코드이다. 조롱은 잘 동작했지만, "DoStuff"함수를 변경하여 객체를 가져와 참조해야했습니다. 그 이후로는 컴파일되지 않습니다. 오류는 다음과 같습니다. * GMock은 "Element"를 long long *과 비교할 수 없습니다.GMock이 컴파일되지 않습니다. 사용자 유형 참조 인수가있는 가상 함수
"C++ code"
using ::testing::NiceMock;
class Element{};
class Foo
{
public:
virtual void DoStuff(Element&) = 0;
};
class MockFoo : public Foo
{
public:
MockFoo() {};
MOCK_METHOD1(DoStuff, void(Element&));
};
TEST(example, test)
{
NiceMock<MockFoo> mf;
Element element{};
EXPECT_CALL(mf, DoStuff(element)).Times(1);
mf.DoStuff(element);
}
답장을 보내 주셔서 감사합니다. 정확한 "요소"가 필요하지 않습니다. 함수가 호출되는지 테스트해야합니다. 그러나 다시 한 번 고마워, 나는 너의 제안을 시도 할 것이다. –
'testing :: _'어떤 정규 표현식이라도 사용할 수 있다면'EXPECT_CALL (mf, DoStuff (_)); '이 필요합니다. – PiotrNycz
감사합니다. –