2009-12-29 2 views
1

У меня есть простой метод проверки следующимГлумление яваскрипта метод с ScrewUnit

function someMethod { 
    //some processing 
} 

Я хочу модульного тестирования этого метода. Каков самый простой способ издеваться над этим. Обычно, если у меня есть объект следующим образом:

var someObject = function() { 
    reload : function() { 
    //reload logic here 
    } 
} 

Я окурок SomeObject, а затем проверить, если mock(someObject).should_receive("reload").exactly('once')

или что-то подобное. Но с этого момента у меня есть метод. Как я это издеваюсь?

ответ

3

Отказывание кода, не ориентированного на объект, сложно. Misko Hevery написал об этом здесь: http://misko.hevery.com/2008/12/15/static-methods-are-death-to-testability. Недостатком является отсутствие «крючка», посредством которого в расчет могут быть введены издевательские вещи.

У вас может быть фактический имп. метода находятся в объекте. Метод просто делегирует этот объект. Таким образом, чтобы протестировать метод, вам нужно только протестировать объект (исходя из разумного предположения, что вы получили код делегирования).

Смежные вопросы