开玩笑-spyOn不会编写代码涵盖实际实现

时间:2020-04-27 12:46:45

标签: typescript jestjs code-coverage

我正在为Typescript进行Jest单元测试,我创建了一个方法

addNumbers:() {
     return 6;
}

这只是用于测试目的的静态测试方法。

我用玩笑创建了一个单元测试

spyOn(object, 'addNumbers').mockReturnValue(6);
expect(object.addNumbers).toHaveBeenCalled(); // expect is success

单元测试工作正常,但是在检查代码覆盖率“ return 6;”时不包括在内。

不知道缺少什么,配置或任何其他问题。

由于此操作成功,需要在实际代码中实现。

如果需要其他任何信息,请告诉我。

预先感谢...

2 个答案:

答案 0 :(得分:0)

spyOn(object,'addNumbers')。mockReturnValue(6);

您在这里嘲笑了该函数,这就是为什么不调用原始函数的原因。

只需要这样使用,不要只嘲笑spyOn

const addNumbersSpy = spyOn(object, 'addNumbers')
expect(addNumbersSpy).toHaveBeenCalled()

答案 1 :(得分:0)

实际代码和代码覆盖率图像。该代码涵盖了使用模拟

主要代码:

export class Main {
addNumber(a: number, b: number) {
    return a + b;
}}
export default Main;

单元测试代码

import { Main } from './main'
describe('Add Number', () => {
test('sum', () => {
    let a = new Main();
    let b = jest.spyOn(a, 'addNumber').mockReturnValue(3).mockImplementation(() => 3);
    expect(a.addNumber(1, 2)).toEqual(3)
})
})

单元测试范围 enter image description here

相关问题