Използване на различни адаптери при тестване

  1. Вчера прескочих форумите и писах направо мейл на Стефан и Митьо, за това ето моят въпрос:

    За проекта си ползвам API-то за достъп до Google Drive, съответно за него ми трябва акаунт и име/парола за достъп. Което за автоматизирани тестове не е готино. Напрактика редактирам и ползвам само spreadsheets, като интерфейсът за достъп до тях е горе долу като на двумерен масив. Как мога да "излъжа" мойто API да ползва по време на тестове някви мокове, които може да са само няква лека абстракция на списък? Имам някои идеи, но никоя от тях не ми се струва елегантна.

    И отговорът на Митьо:

    [...] Второ, всичко, което ще кажа, без да съм видял код, е спекулация и ще бъде със съмнителна стойност.

    Като цяло, правиш си абстракция, която да си говори с някакъв външен сървис и която да не зависи много от детайлите на сървиса. След това си правиш адаптери за тази абстракция. Един от адаптерите ще реализира истинската връзка с Google Drive, докато друг адаптер ще е просто mock и ще пази данните в паметта/временен файл, например. Може да ползваш втория адаптер за тестове, а първия — за реална работа на приложението си. Адаптерът трябва да е малък, прост и да съдържа в себе си всички детайли, свързани с имплементацията на дадената (външна) услуга. Как се тестват такива адаптери е друга тема, но това е много малка част от твоето приложение. Може да потърсиш информация в нета какви са добрите практики при тестване на адаптери, имплементиращи определено API, понеже на мен не ми се е налагало да правя такива неща.

Трябва да сте влезли в системата, за да може да отговаряте на теми.