javascript - jasmine mockDate 总是休息一个月

标签 javascript jasmine karma-jasmine jasmine2.0

我正在尝试使用 jasmine 的 mockDate() 编写时间相关的单元测试:

it("cookie_expiration() is 30 days out", function () {
    var baseTime = new Date(2016, 10, 1, 0, 0, 0, 0);
    jasmine.clock().mockDate(baseTime);
    console.info( new Date() );
    ...
});

我认为这正是他们在 the documentation 中展示的内容但我在控制台中看到的是:Tue Nov 01 2016 00:00:00 GMT-0700 (PDT)

"devDependencies": {
  "jasmine": "^2.5.3",
  "karma": "^1.5.0",
  "karma-chrome-launcher": "^2.0.0",
  "karma-jasmine": "^1.1.0",
  "karma-junit-reporter": "^1.2.0",
  "karma-phantomjs-launcher": "^1.0.4"
}

最佳答案

根据 Date | MDN ,

note that the month is 0-based

因此,这不是 jasminemockDate 的问题。这是 native Date

这是显示现在是 11 月的片段:)

var baseTime = new Date(2016, 10, 1, 0, 0, 0, 0);
var monthNames = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];

console.log("BaseTime month is " + monthNames[baseTime.getMonth()]);

关于javascript - jasmine mockDate 总是休息一个月,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43150846/

相关文章:

AngularJS 和 Jasmine/Karma - 未捕获的 ReferenceError : require is not defined

javascript - 使用 Karma 和 Jasmine 从 JS 测试文件测试编译的 TypeScript

javascript - 如何将原始 javascript 对象转换为字典?

javascript - 使用 Promise 进行 Angular 服务的 Jasmine Mock

javascript - Karma + Angular 未定义错误

javascript - 使用初始实例化类的 Jasmine 测试

testing - 如何测试两个用户之间的异步网站事件

javascript - Netsuite 获取 CSV 文件内容

javascript - Drupal 7 全局 javascript 变量

javascript - Window.popup 在浏览器中居中对齐