Skip to content
Snippets Groups Projects
Commit 01c13e97 authored by Evili del Rio i Silvan's avatar Evili del Rio i Silvan
Browse files

Added correct GMock support and a simple Mock object

parent 2d5e29c6
No related branches found
No related tags found
No related merge requests found
......@@ -17,10 +17,12 @@ ExternalProject_Add(googletest
# Specify include dir
ExternalProject_Get_Property(googletest source_dir)
set(GTEST_INCLUDE_DIRS ${source_dir}/googletest/include PARENT_SCOPE)
set(GMOCK_INCLUDE_DIRS ${source_dir}/googlemock/include PARENT_SCOPE)
# Specify MainTest's link libraries
ExternalProject_Get_Property(googletest binary_dir)
set(GTEST_LIBS_DIR ${binary_dir}/googlemock/gtest PARENT_SCOPE)
set(GMOCK_LIBS_DIR ${binary_dir}/googlemock PARENT_SCOPE)
......@@ -4,7 +4,11 @@ include_directories(
)
# Include main source dir
include_directories (${${PROJECT_NAME_STR}_SOURCE_DIR}/src ${GTEST_INCLUDE_DIRS} )
include_directories (
${${PROJECT_NAME_STR}_SOURCE_DIR}/src
${GTEST_INCLUDE_DIRS}
${GMOCK_INCLUDE_DIRS}
)
# Exclude tests from coverage
set(CTEST_CUSTOM_COVERAGE_EXCLUDE *)
......@@ -19,6 +23,7 @@ add_executable(unit_test ${SRCS})
add_dependencies(unit_test googletest)
target_link_libraries(unit_test
${GTEST_LIBS_DIR}/libgtest.a ${GTEST_LIBS_DIR}/libgtest_main.a
${GMOCK_LIBS_DIR}/libgmock.a ${GMOCK_LIBS_DIR}/libgmock_main.a
${CMAKE_THREAD_LIBS_INIT})
# Add tests...
......
#include "gtest/gtest.h"
#include "gmock/gmock.h"
using ::testing::Return;
class Thing {
private:
int ans;
public:
Thing(): ans(42) {};
virtual int lue() {
return ans;
}
};
class MockThing : public Thing {
public:
MOCK_METHOD0(lue, int());
};
// Just a dummy test that it will fail!
TEST(silly_test, silly_test) {
......@@ -6,3 +24,12 @@ TEST(silly_test, silly_test) {
int b = 1;
EXPECT_EQ(a, b) << "a ("<<a<<") should be equal to b ("<<b<<")";
}
TEST(silly_test, silly_mock) {
MockThing m;
EXPECT_CALL(m, lue()).WillOnce(Return(44));
int a = m.lue();
EXPECT_EQ(a, 42) << "The answer to Life, the Universe and Everything should be 42!!!" ;
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment