Ber*_*Cim 4 javascript jquery unit-testing
关于单元测试jQuery的document.ready function(),我有一个问题.
目前我的代码中有两个场景:
function myFunction()
{
$(document).ready(function() { ... });
}
Run Code Online (Sandbox Code Playgroud)
和:
$(document).ready(function()
{
// some really long setup code here
});
Run Code Online (Sandbox Code Playgroud)
我尝试为第一个场景编写单元测试,但我无法让它运行到document.ready函数中.至于第二个场景,我还没有想出一种方法来测试它(我很难找到一种方法来测试它和语法).
所以假设我无法更改源代码,有没有办法测试这些功能?(假设测试它们是个好主意)
谢谢.
您不需要进行测试,$(document).ready因为它是框架的一部分,并且已经过单元测试.在编写单元测试时,您需要测试两件事:
所以你真正需要做的是确保所调用的代码$(document).ready是正确的.
function myInit(){
//...
}
function myFunction()
{
$(document).ready(myInit);
}
Run Code Online (Sandbox Code Playgroud)
您现在需要做的就是单元测试myInit功能.
您还可以做的是模拟$.ready函数以确保您正在调用它:
var readyCalled = false;
$.ready = function(func){
readyCalled = (myInit == func);
}
//Your code containing `myInit` will get executed somewhere here
//....
//Then test:
test("Should have called ready", function() {
ok(readyCalled, "ready should have been called with myInit as a parameter.")
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3168 次 |
| 最近记录: |