В чем разница между интеграцией и юнит-тестами?
Я знаю так называемое учебное определение юнит-тестов и интеграционных тестов. Что мне любопытно, так это когда пора писать модульные тесты ... Я напишу их, чтобы охватить как можно больше наборов классов.
Например, если у меня естьWord
класс, я напишу несколько юнит-тестов дляWord
учебный класс. Затем я начинаю писать свойSentence
класс, и когда он должен взаимодействовать сWord
класс, я часто буду писать свои юнит-тесты так, чтобы они тестировали обаSentence
а такжеWord
... по крайней мере там, где они взаимодействуют.
По сути, эти тесты стали интеграционными, потому что теперь они тестируют интеграцию этих двух классов, или это просто модульный тест, охватывающий 2 класса?
В общем, из-за этой неопределенной линии я редко буду писать интеграционные тесты ... или я использую готовый продукт, чтобы проверить, все ли части работают должным образом в реальных интеграционных тестах, даже если они ручные и редко повторяются после объем каждой отдельной функции?
Я неправильно понимаю интеграционные тесты, или же разница между интеграцией и юнит-тестами действительно очень мала?
РедактироватСпасибо за все отличные ответы всем! Я думаю, что из разных ответов ясно, что грань между юнит-тестами и интеграционными тестами определенно размыта, и, возможно, немного педантично пытаться выяснить, какие из них и на чем стоит сосредоточиться (спасибо @Rob Cooper ). Кроме того, извините, но я не собираюсь принимать какой-либо ответ, потому что слишком многие слишком хороши, и это действительно кажется весьма субъективным.