2013-06-29 170 views
2

我有signup.js,其中包含一个函数名称demo()。此函数调用带有参数的另一个YUI库函数:嘲笑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); 

test.js

// Using JSMOCKITO APIs for YUI 
testDemo = function(){ 
    // Need to test demo function in signup.js But such that Y.io call to right server 
} 

感谢

+1

我投了票重新打开了这个。理由不明确。这不是代码问题 - 这是一个关于模拟是否可用于测试的问题。答案似乎是肯定的 - 这就是嘲笑。但是我还没有发布答案,因为我不知道是否有一个嘲笑图书馆来处理这个特殊情况。尝试jsmockito似乎是显而易见的事情,但我没有时间。无论这个问题是否可以用jsmockito进行测试,在我看来都是一个完全正确的问题。 –

+1

答案确实是“是”。我没有使用jsmockto,但我可以用一般的术语来回答它。基本上,你用自己的函数覆盖'Y.io',测试'Y.io'是否通过了正确的参数。请重新打开该问题。 – juandopazo

+0

@DavidWallace - 关于模拟对象的主题以及如何创建它们的信息可以在YUI文档中找到,或者使用Google。如果“是”是对这个问题的回答,那么其他人不仅会使用Google或YUI/JSMockito自行解决这个问题,它也不是适合这种格式的问题。因此脱离主题。 –

回答

0

答案确实是“是”。我没有使用jsmockto,但我可以用一般的术语来回答它。基本上,你用自己的函数覆盖Y.io,测试Y.io是否通过了正确的参数。