Boost logo

Boost :

Subject: Re: [boost] Interest check: Boost.Mock
From: Emil Dotchevski (emildotchevski_at_[hidden])
Date: 2009-06-18 22:27:37

On Wed, Jun 10, 2009 at 2:43 AM, Peter Bindels<dascandy_at_[hidden]> wrote:
> Hi all,
> Over the past three-quarters of a year I've been working (with three
> friends) on a mocking framework for C++. In our vision, it would be a good
> complement to Boost.Test for testing classes separate from interfaces
> required - it would improve the ability to unit-test the classes that tie
> others together and that implement higher-level algorithms.
> It does this by creating an object that is "derived" from a given class at
> runtime, and replacing the functions with functions that redirect to
> verifying logic. The verifying logic uses basic structures to record
> expectations and to verify they happened. These ways of creating an object
> at runtime and modifying it are highly compiler dependant but remarkably
> portable - as it runs on at least 3 different compiler series (GCC, MSVC,
> EDG-based) and 5 platforms (Windows XP, Windows CE, Linux, QNX, bare
> platform), with few modifications.

This is a great idea for polymorphic interfaces but some interfaces
are not polymorphic. It would be nice if we could provide a mock
implementation of the internal interface even in case none of the
calls to that interface are virtual. Think C API used as your internal

struct bar;
bar * create_bar(....);
void destroy_bar( bar * );
void use_bar( bar * );

Basically you can alter the implementation by just linking with a
different library instead of bar (I'm not sure how this would work
with the rest of the mock library.)

Emil Dotchevski
Reverge Studios, Inc.

Boost list run by bdawes at, gregod at, cpdaniel at, john at