A
A is a nodejs module which consists of A mocking framework and A testing framework.
A Mocking framework
Mocking a function
partial mock
var original = function() {
return 'realValue';
}
var mock = require('a').mock;
original = mock(original);
mock.expect().return('fake');
original();
original();
strict mock
var original = function() {
return 'realValue';
}
var mock = require('a').mock;
original = mock();
mock.expect().return('fake');
original();
original();
strict mock with arguments
var original = function(arg) {
return 'realValue';
}
var mock = require('a').mock;
original = mock();
mock.expect('testValue1').return('fake1');
mock.expect('testValue2').return('fake2');
original('testValue1');
original('testValue2');
original();
original('foo');
strict mock with multiple arguments
var original = function(arg1, arg2) {
return 'realValue';
}
var mock = require('a').mock;
original = mock();
mock.expect('firstArg1', 'secondArg1').return('fake1');
mock.expect('firstArg2', 'secondArg2').return('fake2');
original('firstArg1', 'secondArg1');
original('firstArg2', 'secondArg2');
original('foo');
original('foo', 'bar');
strict mock with repeats
var original = function() {
return 'realValue';
}
var mock = require('a').mock;
original = mock();
mock.expect().return('fake').repeat(2);
original();
original();
original();
strict mock ignoring arguments
var original = function(arg) {
return 'realValue';
}
var mock = require('a').mock;
original = mock();
mock.expectAnything().return('fake1');
original('someRandomValue');
original();
strict mock with interceptor
var original = function(arg) {
return 'realValue';
}
var mock = require('a').mock;
original = mock();
mock.expect('testValue').whenCalled(onCalled).return('fake1');
function onCalled(arg) {
}
original('someRandomValue');
original();
strict mock - advanced scenario
var original = function(arg, callback) {
return 'realValue';
}
var mock = require('a').mock;
original = mock();
mock.expect('testValue').expectAnything().whenCalled(onCalled).return('fake1');
function onCalled(arg,callback) {
}
function foo() {
}
original('testValue', foo);
original('testValue',foo);
A Testing framework