Требуется ли тестировать публичные внутренние классы? - PullRequest
2 голосов
/ 12 января 2012

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

Ответы [ 4 ]

3 голосов
/ 12 января 2012

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

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

  • Проверка только внутреннего метода класса
  • Проверка только внешнего метода класса с использованием метода внутреннего класса (если возможно)
  • Проверка внешнего классаметод
3 голосов
/ 12 января 2012

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

Если вы выставляете метод, вам нужно его протестировать.

2 голосов
/ 12 января 2012

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

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

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

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