简体   繁体   中英

mocking private methods to test an exported method fails in jest

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

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")
    }
});

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM