如何对CSS transitionEnd事件后执行的JavaScript进行单元测试
How can I unit test JavaScript that will executed after the CSS transitionEnd event
我有引导模式窗口。使用qunit+sinonjs(假定时器),一个元素停留在页面上(div class='modal-backdor'
):
- http://jsfiddle.net/valuks/8xVCR/2/embedded/result/
- http://jsfiddle.net/valuks/8xVCR/2/
看看twitter引导程序(第95行),有一个transitionEnd事件被触发。如何测试将在事件激发后执行的代码?
问题是this.clock.tick(1000);
不会让测试代码等待1000ms,而是调用此时应该发生的所有JavaScript setTimeouts
。因此,在您的情况下,启动动画时,this.clock.tick(1000);
将没有效果,因为动画仍将持续1000ms。您正在寻找类似Jasmines waits()
的东西,它在经过的时间内停止执行下面的所有测试代码。似乎在qunit和sinon中没有对等的。
Btw。你想做的更多的是一个验收测试,而不是一个单元测试。您应该模拟DOM元素,这样您就可以在测试中触发transitionEnd事件,而不是启动真正的动画。同样,启动一个动画和等待将在真正长时间运行的单元测试中结束。因此,在我的最新项目中,我们有大约200个测试用例,它们将运行1-2秒。所以,当你开始在测试中使用waits
时,想想这需要多长时间。
相关文章:
- Javascript单元测试
- Javascript单元测试依赖关系-当依赖对象发生变化时,如何使测试失败
- 将Jasmine JavaScript单元测试与TFS Build CI集成的简单方法
- 没有返回类型的函数的Javascript单元测试
- 在我的Javascript单元测试中,expect(true).toBeTruthy()失败
- Javascript 单元测试和重构(使用 Angular js 框架)
- 如何运行Javascript单元测试
- 什么是 JavaScript 单元测试
- 什么是JavaScript单元测试的代码覆盖率的分支
- 自动化Javascript单元测试..从哪里开始
- Javascript单元测试
- Visual Studio/Build Server的JavaScript单元测试工具-尚未达成共识
- 自定义函数的 JavaScript 单元测试
- Rails 3.1和资产管道的Javascript单元测试
- JavaScript单元测试:Karma、jasmine和bootstrap测试的依赖项
- 如何使用Mocha在Karma中为Javascript单元测试加载HTML固定装置
- 在javascript单元测试中测试单个行
- 配置javascript单元测试和承诺断言
- Gradle exec任务在用Karma运行javascript单元测试时挂起
- 使用V8进行Javascript单元测试