我有一个 1 秒的 jQuery.animate
页面加载后 5 秒启动的操作。我在 Jasmine 单元测试代码中设置了一个 Sinon 计时器,并在 7 秒后进行测试,看看动画后属性是否符合预期。
它无法正常工作,因此我在 Jasmine HTML 测试页上放置了动画本身的一个实例,以便更好地了解发生了什么。
我希望的是以下内容(在所有浏览器中):
- 页面加载,动画函数被调用,动画瞬间完成,单元测试立即成功。
看着诗农的文档 http://sinonjs.org/docs/#clock,它的假定时器涵盖了以下过程:setTimeout
, clearTimeout
, setInterval
, clearInterval
, Date
我不知道jQuery的动画是如何工作的,但我想象它是使用CSS来过渡,而CSS过渡并没有在Sinon的涵盖useFakeTimers
,所以我想这就是问题所在。但是,如果我对这个问题的看法是正确的,我仍然需要一个解决方案。
或许我应该尝试一下诗乃以外的东西?茉莉花的waits()
在这个测试中效果很好,但对于像我这样不耐烦的人来说非常不切实际。
还有其他建议吗?请记住,我是 JS 单元测试的新手,所以模糊的答案会让我感到困惑而不是帮助我。 ;o)
您可以使用jQuery 关闭 http://api.jquery.com/jQuery.fx.off/关闭 jQuery 效果:
jQuery.fx.off = true
这并不能解决最初 7 秒等待事件触发的问题,但它确实意味着您可以测试 DOM 是否已按预期更改。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)