2015-08-16 5 views
3

У меня есть приложение с модулем с несколькими функциями внутри, и я хочу проверить все функции внутри этого модуля, проблема в том, что некоторые из них являются «частными», поскольку я не экспортирую их в модуль экспорт, мой вопрос в том, можно ли их протестировать? или я должен добавить их в объект экспорта, чтобы проверить их.Функция модульного тестирования частного модуля

Я использую мокко.

, например, это мой код

it('Should update env', 
    function (done) { 
     var inst = onsr.updatePorts("'[{key:501,key:501}]'", 'key', 10); 
     inst.should.equal('[{key:501,key:10}]'); 
     done(); 
    }) 

Вот его работа, так как я поставил обновление updatePorts, который является «частным» в экспорте модуля, но я хочу, чтобы избежать этого как-то ...

ответ

0

Дона Не тестируйте частные функции напрямую, проверяйте публичные, которые используют частные.

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

+0

Я не думаю, что это хороший совет. Вы хотите убедиться, что ваш код не содержит ошибок, а не то, что ваши входы не попадают в эти ошибки. Хороший набор тестов гарантирует, что все функции являются нетронутыми. (* Сторона не: *, которая не отвечает на вопрос) – Amit

+0

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

+0

Нет, я не согласен. это совсем не хорошая практика. – Amit

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