为什么Jasmine中的spyOn在构造函数时没有被调用

问题描述 投票:0回答:1

我想监视返回值是否为 true 并在另一个文件中使用它:

const Visitor = require("src/Visitor");
const jsonTest = require("src/jsonTest");
spyOn(jsonTest, "isCorrect").and.returnValue(true);

const oVisitor = new Visitor(...);

我也在 Visitor 文件中使用 isConrrect 函数,但是当我通过调试检查时, isCorrect 返回 false,即使我做了间谍,也不是 true。

有谁知道原因吗? 谢谢

javascript typescript jasmine
1个回答
0
投票

我认为您在测试中导入/需要的

jsonTest
很可能与
Visitor
不同,这意味着当
Vistitor
执行
require('src/jsonTest');
时,他们正在获得另一个“实例”,我们需要监视在这个例子中。

我发现监视导入的最佳方法是:https://stackoverflow.com/a/62935131/7365461

这里有一个主题,解释了为什么随着 TypeScript 的发展,你无法监视导入:https://github.com/jasmine/jasmine/issues/1414

© www.soinside.com 2019 - 2024. All rights reserved.