Использование Qunit для проверки возвращенной функции - PullRequest
2 голосов
/ 12 октября 2011

В настоящее время я изучаю юнит-тестирование и как использовать 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 Ответ

2 голосов
/ 12 октября 2011

Это не то, как выполняется (как правило) модульное тестирование - нет причин проверять, совпадает ли код метода с тестовым кодом (вы знаете, что это так!) Для чего нужно модульное тестирование - убедиться, что результаты равны. Как метод вычисляет результат, не важно.

Итак, ваш тест должен выглядеть примерно так:

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