Протестировать закрытые методы и внутренние классы с NUnit?

mb_convert_encoding($string, "UTF-8", "HTML-ENTITIES");

Вы можете заменить «UTF-8» на любую нужную вам кодировку (хотя в зависимости от выбранной кодировки некоторые символы могут не отображаться).

12
задан DavidRR 14 November 2017 в 19:43
поделиться

3 ответа

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

5
ответ дан 2 December 2019 в 03:43
поделиться

Private methods:

If you're trying to test non-public methods, it usually means you're doing it wrong.

If there's functionality that you want to test, but don't want to make public on your class, the code is trying to tell you something. Your class probably has too many responsibilities. You should seriously consider extracting that private functionality into a new class, writing tests for the new class, and making your old class have a private instance of the new class.

Internal classes:

This one is more valid, especially if you're writing a class library for others to reuse. You may have classes that aren't designed for general use, but that you want to write unit tests for.

For this case, take a look at InternalsVisibleToAttribute.

33
ответ дан 2 December 2019 в 03:43
поделиться

Вы должны предоставить средства для их вызова, возможно, через специфичный для теста производный класс.

0
ответ дан 2 December 2019 в 03:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: