В чем разница между интеграцией и юнит-тестами?

Я знаю так называемое учебное определение юнит-тестов и интеграционных тестов. Что мне любопытно, так это когда пора писать модульные тесты ... Я напишу их, чтобы охватить как можно больше наборов классов.

Например, если у меня естьWord класс, я напишу несколько юнит-тестов дляWord учебный класс. Затем я начинаю писать свойSentence класс, и когда он должен взаимодействовать сWord класс, я часто буду писать свои юнит-тесты так, чтобы они тестировали обаSentence а такжеWord ... по крайней мере там, где они взаимодействуют.

По сути, эти тесты стали интеграционными, потому что теперь они тестируют интеграцию этих двух классов, или это просто модульный тест, охватывающий 2 класса?

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

Я неправильно понимаю интеграционные тесты, или же разница между интеграцией и юнит-тестами действительно очень мала?

Редактироват

Спасибо за все отличные ответы всем! Я думаю, что из разных ответов ясно, что грань между юнит-тестами и интеграционными тестами определенно размыта, и, возможно, немного педантично пытаться выяснить, какие из них и на чем стоит сосредоточиться (спасибо @Rob Cooper ). Кроме того, извините, но я не собираюсь принимать какой-либо ответ, потому что слишком многие слишком хороши, и это действительно кажется весьма субъективным.

Ответы на вопрос(19)

Ваш ответ на вопрос