a_mock
Version:
Sub package of a. Mocking framework
68 lines (54 loc) • 1.78 kB
JavaScript
var assert = require('assert');
var test = require('../../test');
var newRequireMock = require('../../partialMock/simple/newRequireMock');
var newMock = require('../../partialMock/simple/newMock');
(function(){
console.log('mockFuncProperties');
var newPropertyMock = newRequireMock('./propertyMock');
var mockFuncProperties = newRequireMock('./mockFuncProperties');
var sut = require('../mockFuncProperties');
(function() {
console.log('subject is non-primitive');
var subject = {};
var a2 = {};
var a = function() {};
var b = {};
subject.a = a;
subject.b = b;
var mockObject = {};
var aMock = {};
var b2Mock = {};
var bMock = {};
mockObject.a = aMock;
mockObject.b = bMock;
var expectedA = {};
newPropertyMock.expect(subject).expect('a').expect(aMock).return(expectedA);
mockFuncProperties.expect(a).expect(aMock).whenCalled(onMockSubProperties).return();
mockFuncProperties.expect(b).expect(bMock).whenCalled(onMockSubProperties).return();
var mockSubPropertiesCount = 0;
var didMockSubProperties = false;
function onMockSubProperties() {
mockSubPropertiesCount++;
didMockSubProperties = (mockSubPropertiesCount == 2);
}
sut(subject,mockObject);
test('it should mock property a',function() {
assert.equal(subject.a,expectedA);
});
test('it should mock subProperties',function() {
assert.ok(didMockSubProperties);
});
test('it should not change property b',function() {
assert.equal(subject.b,b);
});
})();
(function() {
console.log('subject is primitive');
var subject = 'a';
var mockObject = 'a';
sut(subject,mockObject);
test('it should not throw',function() {
assert(true);
});
})();
})();