2012-01-12 2 views
2

Должен ли я тестировать публичные общедоступные классы классов? Или я должен проверить внешние методы public, которые используют внутренний класс (тот же подход, что и тестирование частных методов)?Требуется ли тестировать публичные внутренние классы?

+2

Вы должны проверить каждый метод, который вы пишете (независимо от того, внутри или снаружи). –

+0

Вы должны особенно проверить любой метод/функциональность, которая еще не была проверена внешним классом. –

+2

@ The Elite Gentleman - абсолютно нет. Нет методов точечного тестирования, которые имеют длину в одну или две строки и не имеют логики ветвления или цикла. Нет никаких частных методов тестирования частных методов, когда только вызывающие методы уже были протестированы. –

ответ

3

Вам необходимо протестировать все, что доступно извне вашего класса. Это включает общедоступные методы внутренних классов (независимо от того, являются ли сами классы общедоступными или частными).

Если вы раскрываете метод, вам необходимо его протестировать.

3

Если метод внешнего класса просто делегирует вызов внутреннему классу, вы можете проверить только один из них. На самом деле не важно, какой из них. В этом случае вы, возможно, захотите переосмыслить свой дизайн, хотя чрезмерное делегирование подразумевает плохой дизайн в моем опыте.

Если метод внешнего класса делает что-то другое, что является существенным исключение только вызов метода внутреннего класса, то вы должны проверить их как по отдельности, как это:

  • Метод испытания только внутренний класс
  • Теста просто метод внешнего класса с помощью метода внутреннего класса Посмешища (если возможно)
  • метода испытаний внешнего класса
2

Ничто не является «обязательным». Вы должны сделать разумное тестирование, но сосредоточьтесь на функциональном тестировании , а не на охвате линий: все, что делает ваш код, должно быть проверено так или иначе.

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

0

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

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