0.0.5 • Published 11 years ago

schmock v0.0.5

Weekly downloads
4
License
-
Repository
github
Last release
11 years ago

schmock

A mock object library for Node.js

Usage

var schmock = require('schmock');

// newly created mocks will throw errors when method parameters do not match
schmock.loud();

// newly created mocks will log errors and return null from methods when method parameters do not match
// Default
schmock.quiet();

// create a mock
var foo = schmock.mock();
// create a mock with an optional name parameter for identification in console log messages (quiet mode)
foo = schmock.mock('foo');

// this mock will throw errors when method parameters do not match
foo = foo.loud();

// this mock will log errors and return null from methods when method parameters do not match
foo = foo.quiet();

// mock the method 'bar'
var bar = foo.when('bar');

// expect the params (1,'param2') to be passed to 'bar' when called
bar = bar.with(1,'param2');

// return 'response' when 'bar' is called
bar.return('response');

// return the result of function when 'bar' is called
bar.return(function() {
    return 'response'; 
});

// throw an Error when 'bar' is called
bar.throw(new Error('oops!'));

Examples:

// complete (quiet) mocking with params and return
var foo = schmock.mock('foo').quiet();
foo.when('bar').with(1,'2').return('response');

assert.equal('response',foo.bar(1,'2'));            // PASS
assert.equal('response',foo.bar(1));                // FAIL
assert.equal(null,foo.bar(1));                      // PASS
assert.equal('response',foo.bar(1,'3'));            // FAIL
assert.equal('response',foo.bar(1,'2','3'));        // FAIL
assert.equal('response',foo.bar(1,undefined));      // FAIL
assert.equal('response',foo.bar(1,null));           // FAIL

// complete (loud) mocking with params and return
foo = schmock.mock('foo').quiet();
foo.when('bar').with(1).return('response');

foo.bar(1);     // OK
foo.bar(2);     // Error: expected argument:'1' did not match actual:'2' for argument 1
foo.bar();      // Error: expected number of arguments:1 did not match actual:0
foo.bar(1,2);   // Error: expected number of arguments:1 did not match actual:2

// complete mocking with throw
foo = schmock.mock('foo');
foo.when('bar').with(1234).throw(new Error('Ham Sandwiches!'));
try {
    foo.bar(1234);
    assert.ok(false,"should have thrown");
} catch (err) {
    assert.equal('Error: Ham Sandwiches!', err.toString());     // PASS
}

// mocking without params and with a return
foo = schmock.mock('foo');
foo.when('bar').return(1234);
assert.equal(1234, foo.bar());      // PASS

// mocking without params, return and throw
foo = schmock.mock('foo');
foo.when('bar');
assert.equal(null, foo.bar());      // PASS
0.0.5

11 years ago

0.0.4

11 years ago

0.0.3

11 years ago

0.0.2

11 years ago

0.0.1

11 years ago