Skip to content

Commit 107ca34

Browse files
committed
chapter 04: create a unit test that use fakeWebService as a mock
1 parent 3fb65ab commit 107ca34

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

chapter_04-interaction-testing-using-mock-objects/LogAn/logAnalyzer.test.js

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@ const extensionManagerFactory = require('./extensionManager');
55
// imported to try the technique "Extract and override"
66
const TestableLogAnalyzerClass = require('./testableLogAnalyzer.class');
77

8+
// this fake will be used as a mock
9+
const fakeWebServiceFactory = require('./fakes/fakeWebService');
10+
811
let myFakeExtensionManager;
912

1013
beforeEach(() => {
@@ -109,3 +112,23 @@ describe('isValidLogFileName', () => {
109112
expect(result).toBe(expected);
110113
});
111114
});
115+
116+
describe('analyze', () => {
117+
let fakeWebService;
118+
beforeEach(() => {
119+
fakeWebService = fakeWebServiceFactory();
120+
});
121+
122+
it('too short file calls webService', () => {
123+
const logAnalyzer = logAnalyzerFactory(
124+
myFakeExtensionManager,
125+
fakeWebService
126+
);
127+
128+
const fileName = 'johndoe';
129+
const expectedMessage = `Filename too short: ${fileName}`;
130+
131+
logAnalyzer.analyze(fileName);
132+
expect(fakeWebService.getLastError()).toBe(expectedMessage);
133+
});
134+
});

0 commit comments

Comments
 (0)