mocking private methods to test an exported method fails in jest

Viewed 22

I'm having an actual class like this

my-file.js

const methodA = () => { return 'output-from-methodA'; }

const methodB = () => { const b = methodA(); b.c = "out-put bind"; return b; }

module.exports = {
    methodB
}

my-file.test.js

const { methodA, methodB }  = require('./my-file.js');
describe('methodB testing', () => {
    it('should call methodA', () => {
        methodB();
        expect(methodA).toHaveBeenCalled()
    }
});

here methodA is private method, so it is not explicit to the test file, then how i ensure it is called or not in the test files

1 Answers

There is no way to test the private function, only the alternative way found is to test the outputs like

const { methodA, methodB }  = require('./my-file.js');
describe('methodB testing', () => {
    it('should call methodA', () => {
        const result = methodB();
        expect(result.b.c).toBe("out-put bind")
    }
});

Related