mirror of
https://github.com/google/googletest.git
synced 2024-12-27 10:11:03 +08:00
Googletest export
Simplify FooConcrete static calls in googlemock cookbook. PiperOrigin-RevId: 332437041
This commit is contained in:
parent
bb2725346d
commit
7aca84427f
@ -781,28 +781,12 @@ perhaps your test doesn't need to mock `Concrete()` at all (but it would be
|
|||||||
oh-so painful to have to define a new mock class whenever you don't need to mock
|
oh-so painful to have to define a new mock class whenever you don't need to mock
|
||||||
one of its methods).
|
one of its methods).
|
||||||
|
|
||||||
The trick is to leave a back door in your mock class for accessing the real
|
You can call `Foo::Concrete()` inside an action by:
|
||||||
methods in the base class:
|
|
||||||
|
|
||||||
```cpp
|
|
||||||
class MockFoo : public Foo {
|
|
||||||
public:
|
|
||||||
// Mocking a pure method.
|
|
||||||
MOCK_METHOD(void, Pure, (int n), (override));
|
|
||||||
// Mocking a concrete method. Foo::Concrete() is shadowed.
|
|
||||||
MOCK_METHOD(int, Concrete, (const char* str), (override));
|
|
||||||
|
|
||||||
// Use this to call Concrete() defined in Foo.
|
|
||||||
int FooConcrete(const char* str) { return Foo::Concrete(str); }
|
|
||||||
};
|
|
||||||
```
|
|
||||||
|
|
||||||
Now, you can call `Foo::Concrete()` inside an action by:
|
|
||||||
|
|
||||||
```cpp
|
```cpp
|
||||||
...
|
...
|
||||||
EXPECT_CALL(foo, Concrete).WillOnce([&foo](const char* str) {
|
EXPECT_CALL(foo, Concrete).WillOnce([&foo](const char* str) {
|
||||||
return foo.FooConcrete(str);
|
return foo.Foo::Concrete(str);
|
||||||
});
|
});
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -811,7 +795,7 @@ or tell the mock object that you don't want to mock `Concrete()`:
|
|||||||
```cpp
|
```cpp
|
||||||
...
|
...
|
||||||
ON_CALL(foo, Concrete).WillByDefault([&foo](const char* str) {
|
ON_CALL(foo, Concrete).WillByDefault([&foo](const char* str) {
|
||||||
return foo.FooConcrete(str);
|
return foo.Foo::Concrete(str);
|
||||||
});
|
});
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user