Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Test one thing at a time, fake the rest.
JavaScript
branch: master

Merge pull request #10 from alexindigo/master

Pointed badge back to mothership.
latest commit 8fd8322b93
@alexindigo alexindigo authored
Failed to load latest commit information.
lib
test Made it play nice with 0.11.x
.gitignore
.npmignore Preparing for npm publish.
.travis.yml
Makefile Made it play nice with 0.11.x
Readme.md Pointed badge back to mothership.
index.js Preparing for npm publish.
package.json

Readme.md

Current Status: This library is ready for experimental usage.

Fake Build Status

Test one thing at a time, fake the rest.

Tutorial

Set an expectation of a method call on an object:

var fake = require('fake')();
var object = {};

fake.expect(object, 'method');

object.method();

If the last object.method() call is not present, an exception will be thrown.

Depending on your approach to TDD, you may prefer to use stubbing over mocking instead:

var fake = require('fake')();
var object = {};

var objectMethodCall = fake.stub(object, 'method');

object.method();

assert.equals(objectMethodCall.calls.length, 1);

API

fake.expect(object, method, [times, withArgs, andReturn | andHandle])

Set up an ordered expectation. Calling any other methods controlled by fake before this expectation has been satisifed will throw an exception.

fake.expectAnytime(object, method, [times, withArgs, andReturn | andHandle])

Set up an unordered expectation. This will only throw an error if this expectation is not verified before the process exits.

fake.stub(object, method, [times, withArgs, andReturn | andHandle])

Set up an optional expectation. This is useful for pre-filling return values for functions, without caring if the function is ever called.

Todo

  • Report non-matching anytime expectations if they are the closest match
  • Move stacktrace into own module
  • Useful error reporting
  • Partial arguments matching
  • Become self-testing
  • Documentation
  • Handle fake functions being claimed by multiple fakes
  • NodeModuleScene / BrowserScriptScene?
Something went wrong with that request. Please try again.