Запитання з тегом «mocking»

Знущання та підробка - це способи ізоляції коду чи компонентів, щоб забезпечити тест одиниць тестування проти тестової одиниці коду лише без фактичного використання інших компонентів або залежностей програми. Знущання відрізняється від підробки тим, що макет може бути перевірений для затвердження результатів тесту.

4
Коли я повинен використовувати макетні об'єкти?
Я читав багато речей про TDD, але все ще сумніваюся. Наприклад, у мене є такі діаграми класів: Це простий приклад, просто дізнатися про TDD та знущатися над об’єктами. Який тест я повинен написати першим? Продукт , потім лінія та остання, замовлення ? Якщо я це роблю, чи слід використовувати лінію …

1
Як розділити код тестової обробки зображень?
Я працюю в обробці зображень (в основному OCR) і мені цікаво, як я повинен інтегрувати одиничні тести у свою розробку. Я вже використовую одиничні тести для більш "загального" типу коду, але, маючи справу з кодом обробки зображень, я не знаю, як з цим боротися. Цей вид коду завжди потребує деякого …

4
Як перевірити код, який залежить від складних API (наприклад, Amazon S3)?
Я борюся з тестуванням методу, який завантажує документи на Amazon S3, але я думаю, що це питання стосується будь-якої нетривіальної API / зовнішньої залежності. Я придумав лише три можливі рішення, але жодне не здається задовільним: Запустіть код, фактично завантажте документ, перевірте в API AWS, що він завантажений, і видаліть його …
13 testing  mocking 

4
Чи макети порушують принцип "Відкрито / закрито"?
Деякий час тому я прочитав відповідь на переповнення стека, яку не можу знайти, пропозицію, в якій пояснювалося, що ви повинні перевірити загальнодоступні API, і автор сказав, що ви повинні перевірити інтерфейси. Автор також пояснив, що якщо реалізація методу зміниться, вам не потрібно буде змінювати тестовий випадок, оскільки це порушить контракт, …

2
Тестування - БД в пам'яті проти глузування
Коли пишуть тести, чому б хтось хотів використовувати базу даних в пам'яті, щоб просто глузувати з даних? Я міг бачити, що бази даних в пам'яті можуть бути корисними для тестування сховищ. Але якщо використовувати фреймворк (наприклад, Spring Data), тестування сховищ було б тестуванням фреймворку, а не дійсно логікою програми. Однак …

3
Як знущатися з методом з жорстко закодованим об'єктом?
Я працюю над додатком, який має кілька шарів. Шар доступу до даних для отримання та збереження даних з джерела даних, бізнес-логіка для маніпулювання даними, інтерфейс користувача для відображення даних на екрані. Я також роблю одиничне тестування рівня бізнес-логіки. Єдина вимога - перевірити потік логіки бізнес-шару. Тому я використовую Moq Framework …

3
Знущання з класу бетону - не рекомендується
Я щойно прочитав уривок книги "Зростаюче об'єктно-орієнтоване програмне забезпечення", в якій пояснюються деякі причини, чому знущатися з конкретного класу не рекомендується. Ось приклад коду одиничного тесту для класу MusicCentre: public class MusicCentreTest { @Test public void startsCdPlayerAtTimeRequested() { final MutableTime scheduledTime = new MutableTime(); CdPlayer player = new CdPlayer() { …

1
Скільки насмішок - це «правильно»?
Я назвав це питання жартома, бо впевнений, що "це залежить", але у мене є конкретні питання. Працюючи над програмним забезпеченням, яке має багато глибоких шарів залежності, моя команда звикла використовувати насмішки досить широко, щоб відокремити кожен модуль коду від залежностей під ним. Тому я був здивований, що Рой Ошерово запропонував …

2
Як би вводилися помилки під час створення макетів динамічною мовою?
Проблема виникає під час виконання TDD. Після пари тестування типи повернення деяких класів / модулів змінюються. Якщо статично типізована мова програмування, якщо попередній макетний об'єкт використовувався в тестах якогось іншого класу і не був модифікований для відображення зміни типу, тоді будуть виникати помилки компіляції. Однак для динамічних мов зміни типів …

5
TDD: Знущання з щільно з’єднаних предметів
Іноді об’єкти просто потрібно щільно з'єднати. Наприклад, CsvFileкласу, ймовірно, потрібно буде тісно працювати з CsvRecordкласом (або ICsvRecordінтерфейсом). Однак, з того, що я дізнався в минулому, одним із головних принципів розробки тесту є "Ніколи не тестуй більше одного класу за один раз". Значить, ви повинні використовувати ICsvRecordмакети або заглушки, а не …
10 tdd  coupling  mocking 

1
Як функціональний стиль допомагає знущатися із залежностей?
З інтерв'ю з Кентом Беком у недавньому номері журналу Java: Бінсток: Давайте обговоримо мікросервіси. Мені здається, що перший тест на мікросервісах ускладнився б в тому сенсі, що деяким службам, щоб функціонувати, знадобиться наявність цілого ряду інших сервісів. Ви згодні? Бек: Схоже, той самий набір професійних пропозицій щодо того, щоб мати …

4
Як би виглядала нова мова, якби її розробили з нуля, щоб було легко TDD?
З деякими найпоширенішими мовами (Java, C #, Java тощо) іноді здається, що ви працюєте в розбіжності з мовою, коли хочете повністю TDD-код. Наприклад, у Java та C # ви захочете знущатися над будь-якими залежностями своїх класів, і більшість глузуючих фреймворків рекомендують вам знущатися з інтерфейсів, а не з класів. Це …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.