当前位置:  开发笔记 > 编程语言 > 正文

Jasmine:如何对使用moment.js的日期过滤器进行单元测试?

如何解决《Jasmine:如何对使用moment.js的日期过滤器进行单元测试?》经验,为你挑选了1个好方法。



1> fracz..:

有一个共同的规则是说你不应该嘲笑你不拥有的东西.如果你模拟momentjs函数,你可能会在将来遇到问题.

想象一下,在将来的某个版本中,时刻会改变LT格式的含义(可疑,但你可以看到问题).升级到新版本后,如果在单元测试中使用了momentjs实现,则测试会检测到此回归.相反,如果你要模拟它并记录返回"5:46 AM",如果用"LT"调用时刻,那么你的测试将是绿色的,尽管生产代码由于momentjs升级而无法工作.

但是,如果你的问题是关于不同的东西,这只是一个很小的例子,你可以(但你不应该)使用callFake模拟一下:

spyOn(window, 'moment').and.callFake(function (date) {
  return {
    format: function (format) { /* your format implementation */ }
  };
});

推荐阅读
周扒pi
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有