Запитання з тегом «unit-testing»

Тестування одиниць - метод, за допомогою якого окремі одиниці вихідного коду тестуються, щоб визначити, чи вони придатні для використання.

5
оператор переключення - обробка випадку за замовчуванням, коли його неможливо досягти
Якщо я використовую оператор перемикання для обробки значень із enum (який належить моєму класу), і у мене є справа за кожним можливим значенням - чи варто додати код для обробки випадку "за замовчуванням"? enum MyEnum { MyFoo, MyBar, MyBat } MyEnum myEnum = GetMyEnum(); switch (myEnum) { case MyFoo: DoFoo(); …

3
Блок тестування поведінки без з'єднання з деталями реалізації
У своїй розмові TDD, куди це все пішло не так , Іен Купер підштовхує оригінальний намір Кента Бека за тестуванням одиниці в TDD (для тестування поведінки, а не методів занять конкретно) та заперечує за те, щоб уникнути прив'язки тестів до впровадження. У випадку поведінки на зразок save X to some …

9
Чи слід тестувати значення перерахунків, використовуючи одиничні тести?
Якщо у вас є enum зі значеннями (немає методів, як це можна зробити в Java), і цей enum є частиною бізнес-визначення системи, чи слід писати для нього одиничні тести? Я думав, що вони повинні бути написані, навіть якщо вони можуть здатися простими та зайвими, я вважаю, що те, що стосується …

2
Чи нормально уникати тестування базових класів?
У мене є базовий клас із неабиякою кількістю "метапрограмування", щоб надати йому гнучкість / абстракцію, що йому потрібно бути досить загальним. У мене дуже багато підкласів, що використовують загальні методи базового класу, і я маю тести, орієнтовані на поведінку, що охоплюють усі випадки у кожному підкласі. Чи нормально пропустити тестування …

4
Чи є якесь значення в написанні одиничного тесту, що є підмножиною іншого тесту?
Щоб дати трохи надуманий приклад, скажімо, я хочу перевірити, що функція повертає два числа, і що перше менше, ніж друге: def test_length(): result = my_function() assert len(result) == 2 def test_order() a, b = my_function() assert a < b Тут, якщо test_lengthне вдасться, то test_orderі провал. Це найкраща практика писати …

4
Як зробити тест-керовану розробку
Я маю лише 2+ років досвіду в розробці додатків. У ці два роки мій підхід до розвитку був такий Проаналізуйте вимоги Основний компонент / Об'єкти, Потрібні функції, Поведінка, Процес та їх обмеження Створюйте класи, відношення між ними, обмеження в поведінці та станах об'єктів Створюйте функції, обробляйте поведінкові обмеження відповідно до …

6
Блок тестування приватного методу в c ++, використовуючи клас друзів
Я знаю, що це є дискусійною практикою, але припустимо, що це найкращий варіант для мене. Мені цікаво, що є власне технікою цього робити. Я бачу такий підхід: 1) Складіть клас друзів з класу, чий метод я хочу перевірити. 2) У класі друзів створіть загальнодоступні методи, які викликають приватні методи тестового …

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

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

5
Що вважається кодом третьої сторони?
Натхненний цим питанням Використання сторонніх бібліотек - завжди використовувати обгортку? Мені хотілося знати, що насправді люди вважають сторонніми бібліотеками. Приклад із PHP: Якщо я будую додаток за допомогою Zend Framework, чи слід розглядати бібліотеки Zend Framework як код третьої сторони? Приклад із C #: Якщо я будую додаток для настільних …

6
Чи слід виключати код для аналізу покриття коду?
Я працюю над декількома додатками, в основному застарілими. Наразі їх охоплення кодом досить низьке: загалом від 10 до 50%. Протягом декількох тижнів ми регулярно обговорюємо з командами Бангалор (основна частина розробки проводиться в офшорному напрямку в Індії) щодо виключення пакетів або класів для Cobertura (наш інструмент покриття коду, навіть якщо …

4
Блок тестування статично набраного функціонального коду
Я хотів запитати вас, у яких випадках має сенс випробувати тест на статично набраний функціональний код, написаний у haskell, scala, ocaml, nemerle, f # або haXe (останнє - це те, що мене справді цікавить, але я хотів скористайтеся знаннями великих громад). Я прошу це тому, що з мого розуміння: Одним …

5
Коли ви повинні і не повинні використовувати ключове слово "нове"?
Я переглянув презентацію Google Tech Talk на тестуванні підрозділів , проведену Місько Гевери, і він сказав не уникати використання newключового слова в коді бізнес-логіки. Я написав програму і в кінцевому підсумку використовував newключове слово тут і там, але вони в основному були для екземплярів об'єктів, що містять дані (тобто вони …

6
Параметризовані тести - Коли і для чого ви їх використовуєте?
Останнім часом на роботі у нас виникли певні розбіжності щодо параметризованого тестування . Зазвичай ми використовуємо стиль TDD (або принаймні намагаємось), тому я розумію переваги цього підходу. Однак я намагаюся бачити тести, які параметризують коефіцієнт посилення. Для довідки, ми працюємо над сервісом і його бібліотеками, які відкриваються через інтерфейс RESTful. …

4
Ресурси для розробки тестових програм у веб-додатках? [зачинено]
Наразі це запитання не підходить для нашого формату запитань. Ми очікуємо, що відповіді будуть підкріплені фактами, посиланнями або експертними знаннями, але це питання, ймовірно, вимагатиме дискусій, аргументів, опитувань чи розширеної дискусії. Якщо ви вважаєте, що це питання можна вдосконалити та, можливо, знову відкрити, відвідайте довідковий центр для ознайомлення . Закрито …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.