Чтобы добавить мои два цента:
Я согласен с большинством постов здесь, утверждая, что создание методов / функций тестирования с единственной целью тестирования является расточительным и потенциально, структурно дезорганизованным.
Однако, как правило, когда вы разрабатываете «с учетом тестирования», вы можете спроектировать свою реализацию так, чтобы она также тестировалась.Например, вы можете изначально разработать функцию / метод для использования переменной класса.Однако, если вы хотите проверить функциональность этого метода, вы можете спроектировать так, чтобы значение переменной класса «передавалось» в качестве параметра функции.
Теперь ваш метод является функциональным и тестируемым, т.е. функциональным тестированием.
Так что на самом деле вы можете спроектировать свой класс для последующего тестирования, не испытывая при этом всех недостатков создания метода с единственной целью тестирования.
Надеюсь, это поможет.Эта вики дает хороший обзор тестирования в программировании, в целом: http://en.wikipedia.org/wiki/Software_testing