0.0.5 • Published 11 years ago
schmock v0.0.5
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