使用Qunit测试返回的函数

时间:2011-10-12 15:23:03

标签: javascript jquery unit-testing jquery-plugins qunit

我目前正在学习单元测试以及如何使用QUnit,并认为最好的方法是使用我编写的小型jQuery插件。

在插件中,我使用缓动插件中的方程扩展了缓动对象,如下所示:

$.extend( $.easing, {

    'ease-in': function (x, t, b, c, d) {
      return c*(t/=d)*t*t + b;
    },
    'ease-out': function (x, t, b, c, d) {
      return c*((t=t/d-1)*t*t + 1) + b;
    },
});

现在我尝试在QUnit测试中使用它:

equal(jQuery.easing['ease-in'],
      function (x, t, b, c, d) {return c*(t/=d)*t*t + b;},
      'ease-in returns correct function');

它失败了...我错过了某些东西,或者我在某个地方弄到了错误的一端?

1 个答案:

答案 0 :(得分:2)

这不是单元测试(通常)是如何完成的 - 没有理由测试方法的代码是否等于测试代码(你知道它确实如此!)。单元测试的目的是确保结果相等。该方法如何计算结果并不重要。

所以,你的测试应该是这样的:

var easeIn = jQuery.easing['ease-in'];
equal(
    easeIn( 1, 2, 3, 4, 5 ),
    123  // or whatever the result should be
);