![]() |
F´ Flight Software - C/C++ Documentation NASA-v1.6.0
A framework for building embedded system applications to NASA flight quality standards.
|
Given
(note that ~Foo()
must be virtual) we can define its mock as
To create a "nice" mock, which ignores all uninteresting calls, a "naggy" mock, which warns on all uninteresting calls, or a "strict" mock, which treats them as failures:
{: .callout .note} Note: A mock object is currently naggy by default. We may make it nice by default in the future.
Class templates can be mocked just like any class.
To mock
(note that all member functions that are mocked, including ~StackInterface()
must be virtual).
If your mock function doesn't use the default calling convention, you can specify it by adding Calltype(convention)
to MOCK_METHOD
's 4th parameter. For example,
where STDMETHODCALLTYPE
is defined by <objbase.h>
on Windows.
The typical work flow is:
testing
namespace unless they are macros or otherwise noted.Here's an example:
gMock has a built-in default action for any function that returns void
, bool
, a numeric value, or a pointer. In C++11, it will additionally returns the default-constructed value, if one exists for the given type.
To customize the default action for functions with return type T
, use DefaultValue<T>
. For example:
To customize the default action for a particular method of a specific mock object, use ON_CALL
. ON_CALL
has a similar syntax to EXPECT_CALL
, but it is used for setting default behaviors when you do not require that the mock method is called. See Knowing When to Expect for a more detailed discussion.
See EXPECT_CALL
in the Mocking Reference.
See the Matchers Reference.
See the Actions Reference.
See the Times
clause of EXPECT_CALL
in the Mocking Reference.
By default, expectations can be matched in any order. If some or all expectations must be matched in a given order, you can use the After
clause or InSequence
clause of EXPECT_CALL
, or use an InSequence
object.
gMock will verify the expectations on a mock object when it is destructed, or you can do it earlier:
Do not set new expectations after verifying and clearing a mock after its use. Setting expectations after code that exercises the mock has undefined behavior. See Using Mocks in Tests for more information.
You can also tell gMock that a mock object can be leaked and doesn't need to be verified:
gMock defines a convenient mock class template
See this recipe for one application of it.
Flag | Description |
---|---|
--gmock_catch_leaked_mocks=0 | Don't report leaked mock objects as failures. |
--gmock_verbose=LEVEL | Sets the default verbosity level (info , warning , or error ) of Google Mock messages. |