我的目标是调试我的一个测试。我用Mocha作为基础,而SinonJS用于间谍,存根和嘲笑。由于某些未知原因,我的ajax方法的存根已停止工作。它工作一周前,现在发送请求,存根不跟踪调用。
我在最外面的describe
let sandbox = sinon.sandbox.create();
let ajaxStub = undefined;
然后这个:
beforeEach(function () {
ajaxStub = sandbox.stub($, 'ajax');
});
afterEach(function () {
sandbox.restore();
});
无论如何,我的问题不是这个问题,我可能在其他地方做了一些非常愚蠢的事情,而且一些调试可能会解决它。我的问题在于调试本身。
mocha --debug-brk --inspect ./test/mytest.js
这是我在命令行中运行以进行调试会话。
我的问题是运行我目前正在使用Gulp的测试,我将加载所有框架依赖项和所有我的全局变量 - 以这种方式添加的库包括jQuery
和{ {1}}
当然,如果我使用该命令行调试我的测试,NodeJS不会在环境中加载所需的文件,并且在第一次引用sinon时我得到一个例外。
我可以创建一个html页面,在其中加载所需的文件和测试并运行测试 - 然后使用浏览器检查器手动调试 - 但这是我想避免的。有没有更自动化的东西?
我不是NodeJS专家,我只是粗略地了解它是什么以及它是如何工作的,所以我非常有信心可能会有一些我错过的东西可以提供帮助:)
我现在正在考虑的是一个批处理脚本来查找所需的文件,但这就是我所拥有的。
另外需要注意的是:代码库真的很老,而且我真的没有权限将现有代码重构为es6模块。
答案 0 :(得分:0)
我找到了一个解决方案:我将创建一个testDebugLoader.js脚本,在其中我将编写我想要调试的测试,以及我需要加载的脚本路径数组。
然后循环遍历数组,加载每个所需文件,并在检索到的文本上调用eval。