Javascript 模拟YUI函数

Javascript 模拟YUI函数,javascript,unit-testing,mocking,yui,mockito,Javascript,Unit Testing,Mocking,Yui,Mockito,我有signup.js,它包含一个函数名demo()。此函数调用另一个带有参数的YUI库函数: Y.io('mywrongserver',callbackfunction); 我必须测试这个函数,但我想调用正确的服务器 Y.io('myrightserver',callbackfunction); 怎么可能呢?我不想更改signup.js中的任何代码,因为这是由开发人员完成的 我们能利用嘲弄吗 代码如下所示: signup.js demo : function(){ alert('i

我有
signup.js
,它包含一个函数名
demo()
。此函数调用另一个带有参数的YUI库函数:

Y.io('mywrongserver',callbackfunction);
我必须测试这个函数,但我想调用正确的服务器

Y.io('myrightserver',callbackfunction);
怎么可能呢?我不想更改
signup.js
中的任何代码,因为这是由开发人员完成的

我们能利用嘲弄吗

代码如下所示:

signup.js

demo : function(){
    alert('i am inside demo');
    // Some other stuff
    callback = {
        on :{
            success:function(x,o){
                // Some stuff here
            }
        }
    }
    // Now call to wrong server
    Y.io("mywrongserver", callback); 
// Using JSMOCKITO APIs for YUI
testDemo = function(){
    // Need to test demo function in signup.js But such that Y.io call to right server 
}
test.js

demo : function(){
    alert('i am inside demo');
    // Some other stuff
    callback = {
        on :{
            success:function(x,o){
                // Some stuff here
            }
        }
    }
    // Now call to wrong server
    Y.io("mywrongserver", callback); 
// Using JSMOCKITO APIs for YUI
testDemo = function(){
    // Need to test demo function in signup.js But such that Y.io call to right server 
}
谢谢

答案是肯定的。我没有使用jsmockto,但我可以用一般的术语回答它。基本上,您可以使用自己的函数覆盖Y.io,该函数测试Y.io是否传递了正确的参数


我已经投票决定重新打开这个。给出的接近理由似乎不适用。这不是代码的问题,而是关于是否可以使用模拟来测试这一点的问题。答案似乎是肯定的——这就是嘲笑的目的。但我没有给出答案,因为我不知道是否有一个模拟库可以处理这个特殊的案例。尝试jsmockito似乎是显而易见的事情,但我没有时间。在我看来,这是否可以用jsmockito测试是一个完全正确的问题,答案确实是“是”。我没有使用jsmockto,但我可以用一般的术语回答它。基本上,您可以使用自己的函数覆盖
Y.io
,该函数测试
Y.io
是否传递了正确的参数。请重新打开这个问题。@DavidWallace-有关模拟对象主题以及如何创建它们的信息,可以在YUI文档中或使用Google找到。如果这个问题的答案是“是”,那么不仅其他人会用Google或YUI/JSMockito自己解决这个问题,而且这个问题也不适合这种格式。因此脱离主题。@JonasG.Drange:首先,我不是在问如何模拟对象和其他东西。我不确定是否在上面给出的案例中,我可以使用mocking,如果你说这可以通过谷歌找到。然后一切都可以通过谷歌找到。stackoverflow.com完全没有用处。。不要只是我个人的意见