반응형

2025/06 2

[GMock이해]Mock 객체 종류를 이해하자

gmock의 Mock 객체 종류: NiceMock, StrictMock, 일반 Mockgmock에서 Mock 객체는 크게 세 가지로 나뉩니다:NiceMock: "친화적인" Mock (예상치 못한 호출에 경고 없음)StrictMock: "엄격한" Mock (예상치 못한 호출 시 테스트 실패)일반 Mock (기본): 예상치 못한 호출에 경고만 출력1. NiceMock"친화적인" Mock 객체예상하지 않은 함수 호출에 대해 경고를 출력하지 않음호출되지 않아도 테스트 실패하지 않음장점: 테스트가 "조용하게" 실행됨 (불필요한 경고 없음)단점: 예상치 못한 호출을 놓칠 수 있음사용 예시TEST(DatabaseTest, NiceMockTest) { NiceMock mock_db; // "친화적인" Mock ..

[GMock이해]ON_CALL vs EXPECT_CALL 차이

ON_CALL vs EXPECT_CALL 차이점 이해하고 사용하자개요TDD 방법론으로 C++ 개발하시나요. gtest를 무난히 이해하고 사용하다, 다음 단계로 특수 한 상황에 Fake 객체 대신 사용할 수 있는 gmock을 접하게 될 것입니다. Mock 객체의 동작을 제어하는 두 가지 주요 방법을 이해하고 사용할 수 있도록 정리합니다. ON_CALL: 기본 동작 설정 (행위 정의)EXPECT_CALL: 호출 검증 + 동작 설정 (검증 + 행위)1. ON_CALL - 기본 동작 설정특징"만약 이 함수가 호출되면 이렇게 동작해라"호출 횟수나 순서를 검증하지 않음단순히 기본 반환값/동작만 설정호출되지 않아도 테스트 실패하지 않음사용 예시 TEST(DatabaseTest, MockLoginTest) { N..