157. Polymorphism-ii

Question.5

A developer creates a mock for testing without hardware:

class IGPIO {
public:
   virtual void write(bool v) = 0;
   virtual ~IGPIO() = default;
};

class RealGPIO : public IGPIO {
public:
   void write(bool v) override { /* Hardware register */ }
};

class MockGPIO : public IGPIO {
public:
   bool last_value;
   void write(bool v) override { last_value = v; }
};

void test_led_on(IGPIO& gpio) {
   LED led(gpio);
   led.turn_on();
   assert(((MockGPIO&)gpio).last_value == true);
}

What technique does this demonstrate?

Need Help? Refer to the Quick Guide below

Select Answer