Skip to content
fake chocolate, mock objects and test spies for AS3
Latest commit 6ae3801 Jul 1, 2012 2 @drewbourne add support to inject the generated proxy class into tests.
for example:

    public var example:Example;

    public var exampleProxyClass:Class;


fake chocolate, mock objects and test spies. Documentation, examples, elaboration. Drew Bourne Contact.

This tagline is probably a hint that Mockolate is most useful when testing software. Whether you are doing test-driven-development, post-crunch-time fill-in-the-gaps, or exploratory-I-have-no-idea-what-is-going-on testing Mockolate can help.

Mock Objects

A mock object can be used to simulate the behaviour of complex, real (non-mock) objects when using the real object would be impractical or impossible. Situations where a mock object would be useful:

  • When an object is slow (like a database or webservice),
  • is non-deterministic (like the current time),
  • has states that are difficult to reproduce (like network connections)

The above is mostly appropriated from Mock Objects at Wikipedia. I could keep rewriting it here, but it's really quite a good read.

Test Spies

In espionage, spies infiltrate a system, recording and relaying information to their handlers. The handlers may use that information to check facts, inform others, or take action.

In testing, a Test Spy records which methods are called, which getters are got, which setters are set. The handler (typically a testcase) can then check the facts against what should or should not have happened and take action (typically an assertion).


  • clean consistent syntax
  • expectation-based or record-replay
  • dynamically generates proxy Classes
  • supports handcoded proxy Classes
  • provides a FlexUnit 4 Rule and Runner
  • uses proven libraries, FlexUnit 4, FLoxy and Hamcrest-as3


Head over to for documentation and examples:


Richard Szalay with FLoxy, and Maxim Porges with Loom for their work on Class proxy generation.

Brian LeGros for hassling me about -mock-as3- enough that I added class proxy generation to it. Except you can ignore that project in favour of Mockolate.

Something went wrong with that request. Please try again.