嘲笑测试函数,调用eval

时间:2018-11-29 13:57:45

标签: javascript vue.js jestjs

我有一个使用vue-cli 3.0创建的Vue TS项目。

这是我要测试的功能:

public hopJavascript(url: string) {
    eval(url);
}

这是我使用Jest框架的测试功能:

test('navigation using javascript', () => {
    const url = "someurl";
    hopJavascript(url);
    
    expect(eval).toBeCalled();
});

现在我收到此消息test failed console logging,它告诉我我需要模拟的eval版本。

我如何模拟评估

2 个答案:

答案 0 :(得分:0)

更新

似乎您不能总是根据您的JS环境(浏览器或节点)覆盖eval。有关更多信息,请参见"How override eval function in javascript?"的答案

原始答案

我认为您可以在测试文件中重新定义eval

global.eval = jest.fn()

答案 1 :(得分:0)

您需要使用spyOn()跟踪函数。

此解决方案应为您工作。

{{1}}