Тестирование частных методов, требуется уточнение - PullRequest
0 голосов
/ 17 января 2012

В моем src существует класс, который содержит метод

public static boolean doExtensionsMatch(String s, String t) {

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

Это public однако, поскольку некоторое время назад я чувствовал, что этот метод нужно было проверить напрямую, и, таким образом, видимость private у меня не сработала,

На данный момент:

  • Я бы предпочел не выбрасывать эти тесты.Однако, если я сделаю метод private, тесты станут непригодными для использования.
  • Я бы предпочел, чтобы тесты оставались в его текущей папке src-test, таким образом сохраняя отдельные места для источника и тестов

Итак, вы скажете мне, что мне делать?

Должен ли я изменить метод на приватный и удалить тесты?

Ответы [ 2 ]

1 голос
/ 17 января 2012

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

Таким образом, частные методы не нужно тестировать, если они недоступны. И даже больше - вам не нужно заботиться о том, как работает интерфейс, вы должны быть довольны только результатами.

Вы тестируете поведение, а не реализацию.

0 голосов
/ 17 января 2012

Я бы предложил использовать частичные классы.Если ваши тестовые классы являются частичными классами тестируемого класса, они будут иметь доступ ко всем методам и переменным независимо от того, являются ли они открытыми.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...