2013-09-08 7 views
0

Я новичок в модульных тестах, жасмине, и мне было интересно, можем ли мы тестировать частные методы внутри функции. Вот фрагмент кода, что я пытаюсь сделатьТестирование частных методов (var's) Внутри функции

function thisIsTheFunction(...) { 
    //Some Code 

    var thisIsTheMethod = function() { 
     //This Should be tested 
    } 

    //Someother Code 
} 

Я знаю, что мы можем проверить thisIsTheFunction, если он подключен к this. Но есть ли способ проверить, является ли метод приватным?

Заранее благодарен!

ответ

1

У вас просто нет доступа к thisIsTheMethod за пределами thisIsTheFunction.

Кроме того, вы не должны тестировать частный метод.

Показать пример вашего фактического кода, чтобы мы могли лучше помочь вам достичь своей цели.

0

Если вы хотите протестировать фактическую логику кода в этом методе, то действительно все, что вы можете сделать, это разделить этот метод на отдельную «общедоступную» функцию и протестировать ее как свою собственную единицу. (имея в виду, что если вы хотите проверить логику, если внутренняя функция во время проверки внешней функции, то это интеграционный тест, а не единичный тест)

Однако, если вы хотите проверить поведение внешнего функция по отношению к внутреннему, один из подходов, который вы можете принять к этому, заключается в том, чтобы позволить вызывающему абоненту передать обратный вызов для реализации thisIsTheMethod как часть параметров для «конструктора» thisIsTheFunction.

Это то позволяет «вводить» обратный вызов, который вы определяете внутри тестовой функции, так что вы можете проверить, как ведет себя thisIstheFunction с точки зрения это вызвать thisIsTheMethod, когда он должен, и т.д.