gcd*_*dev 13 javascript unit-testing jasmine sinon jquery-animate
我有一秒钟的jQuery .animate动作,在页面加载后5秒启动.我在我的Jasmine单元测试代码中设置了一个Sinon计时器,并在7秒钟后测试,以查看动画后属性是否应该如此.
它不能正常工作,所以我在我的Jasmine HTML测试页面上放置了一个动画实例,以便更好地了解正在发生的事情.
在Firefox和Chrome中,页面加载,动画函数被调用,单元测试立即失败,然后(也立即)动画明显发生.
在IE,Opera和Safari中,页面加载,动画函数被调用,单元测试立即失败,动画永远不会明显发生.
我希望的是以下(在所有浏览器中):
综观兴农的文档,这是假的定时器包括以下过程:
setTimeout,clearTimeout,setInterval,clearInterval,Date
我不知道jQuery的动画是如何工作的,但是我想它是使用CSS来转换,而且Sinon的CSS转换并没有涵盖useFakeTimers,所以我想这就是问题所在.但是,如果我对这个问题是正确的,我仍然需要一个解决方案.
也许我应该尝试除了诗乃之外的东西?Jasmine waits()在这个测试中的表现非常出色,但对于像我这样的不耐烦的人来说却是非常不切实际的.
还有其他建议吗?请记住,我是JS单元测试的新手,所以模糊的答案会让我更加困惑,而不是帮助我.; O)
Der*_*ins 20
您可以使用jQuery off来关闭jQuery效果:
jQuery.fx.off = true
Run Code Online (Sandbox Code Playgroud)
这不会解决您的事件发生的第7秒等待的问题,但它确实意味着您可以测试DOM已按预期更改.
| 归档时间: |
|
| 查看次数: |
4487 次 |
| 最近记录: |