2

我目前正在学习单元测试以及如何使用 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');

它失败了......我是错过了什么还是我在某个地方弄错了?

4

1 回答 1

2

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

因此,您的测试应如下所示:

var easeIn = jQuery.easing['ease-in'];
equal(
    easeIn( 1, 2, 3, 4, 5 ),
    123  // or whatever the result should be
);
于 2011-10-12T15:28:18.593 回答