2 개의 수업이 있습니다.Google 모의 도움이 필요합니다.
class SomeClass
{
public:
int SomeFunction()
{
return 5;
}
};
class AnotherClass
{
public:
int AnotherFunction(SomeClass obj)
{
return obj.SomeFunction();
}
};
SomeClass에 대한 모의 수업을 만들었습니다.
class MockSomeClass : public SomeClass
{
public:
MOCK_METHOD0(SomeFunction, int());
};
이제 유닛 테스트에서 AnotherClass.AnotherFunction을 호출 할 때 자신이 선택한 결과를 얻고 싶습니다. AnotherFunction은 SomeClass.SomeFunction() 함수를 사용합니다. 나는 SomeClass를 조롱했다. 조롱 된 객체의 함수가 후퇴 10을 호출 할 때 그것을 설정했습니다.하지만 단위 테스트를 실행하면 5 (원래 함수)가 반환됩니다. 어떻게해야합니까? 아래는 제가 작성한 단위 테스트입니다.
[TestMethod]
void TestMethod1()
{
MockSomeClass mock;
int expected = 10;
ON_CALL(mock, SomeFunction()).WillByDefault(Return(expected));
AnotherClass realClass;
int actual = realClass.AnotherFunction(mock);
Assert::AreEqual(expected, actual);
};
저는 visual studio 2008 및 gmock 1.6.0을 사용하고 있습니다. 내가 뭘 잘못하고있어. realClass.AnotherFunction에 난 mock.SomeFunction()에서 조롱 된 출력 싶어요.
사용하여 호출합니다. 하지만 작동하지 않습니다. 여전히 10 대신에 5를 반환합니다. –
@fhnaseer 실제 코드를 보여줍니다. –
감사합니다. 레퍼런스를 통과하면 문제가 해결되고, –