You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Exercism闰年习题中,如何在Jasmine测试里进入调试器?

在Jasmine测试中启用调试器的方法

我了解你正在通过Exercism的练习打磨JavaScript技能,目前卡在闰年习题的Jasmine测试调试上——别担心,下面几种方法能帮你轻松进入调试模式:

1. 直接插入debugger语句 + Node.js调试模式

这是最直接的方式:

  • 打开你的leap.spec.js,在需要调试的测试用例里添加debugger;语句,比如:
var Year = require('./leap');
describe('Leap year', function () {
  it('is not very common', function () {
    debugger; // 断点就设在这里
    const year = new Year(2015);
    expect(year.isLeap()).toBe(false);
  });
});
  • 接着在终端用Node的调试命令运行测试:
node inspect node_modules/jasmine/bin/jasmine.js leap.spec.js
  • 代码会自动在debugger处暂停,你可以用这些常用调试命令:
    • next:执行下一行(不进入函数)
    • step:进入当前调用的函数
    • watch('year'):监听year变量的变化
    • repl:进入交互模式,直接查看变量值

2. 用Chrome DevTools可视化调试

如果你偏爱图形化界面,试试这个:

  • 用--inspect标志启动测试:
node --inspect node_modules/jasmine/bin/jasmine.js leap.spec.js
  • 打开Chrome浏览器,输入chrome://inspect,在「Remote Target」区域找到你的测试进程,点击「inspect」就能打开熟悉的DevTools面板。
  • 和调试前端代码一样,你可以设置断点、查看调用栈、监控变量,操作起来更直观。

3. 在业务代码中加断点调试逻辑

如果想调试leap.js里的isLeap方法,直接在业务代码里加debugger就行:

var Year = function (year) {
  this.year = year; // 这里提醒下:你原来的代码没给实例赋值year,会导致isLeap方法报错,记得补上!
};
Year.prototype.isLeap = function () {
  debugger; // 进入方法时触发断点
  return (this.year % 4 === 0 && this.year % 100 !== 0) || this.year % 400 === 0;
};
module.exports = Year;
  • 再用上面任意一种方式运行测试,就能深入到方法内部,检查this.year的值和逻辑执行流程了。

内容的提问来源于stack exchange,提问作者Kurt Peek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:48:15