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

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

2
Як піти на тестування неін'єкційного коду?
Тож у мене є наступний фрагмент коду, який використовується у всій моїй системі. Зараз ми пишемо одиничні тести заднім числом (краще пізніше, ніж ніколи не було моїм аргументом), але я не бачу, як це було б перевірено? public function validate($value, Constraint $constraint) { $searchEntity = EmailAlertToSearchAdapter::adapt($value); $queryBuilder = SearcherFactory::getSearchDirector($searchEntity->getKeywords()); $adapter …

3
Відмінності між даними, коли тоді (GWT) і Arrange Act Assert (AAA)?
У TDD є синтаксис Arrange Act Assert (AAA): [Test] public void Test_ReturnItemForRefund_ReturnsStockOfBlackSweatersAsTwo_WhenOneInStockAndOneIsReturned() { //Arrange ShopStock shopStock = new ShopStock(); Item blackSweater = new Item("ID: 25"); shopStock.AddStock(blackSweater); int expectedResult = 2; Item blackSweaterToReturn = new Item("ID: 25"); //Act shopStock.ReturnItemForRefund(blackSweaterToReturn); int actualResult = shopStock.GetStock("ID: 25"); //Assert Assert.AreEqual(expectedResult, actualResult); } У тестах написання …
13 c#  unit-testing  tdd  bdd 

5
Зламані тести старого / застарілого блоку
Я працюю у великій компанії і відповідаю за велику програму java з тисячами тестів на джун. З того моменту, як я перейшов на цю роль, було 200-300 зламаних тестів (ймовірно, зламаних роками). Тести старі і тендітні, і вони є безладом залежностей від спагетті, які, як правило, закінчуються даними "пісочного". Моя …

3
Як привернути увагу програміста в певних умовах?
Почнемо з прикладу. Скажімо, у мене є метод, який називається, exportщо сильно залежить від схеми БД. І під "сильно залежить" я маю на увазі, що я знаю, що додавання нового стовпчика до певної таблиці часто (дуже часто) призводить до зміни відповідної exportметодики (зазвичай ви також повинні додавати нове поле до …

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

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

4
Таким чином я пишу цей код можна перевірити, але чи не в цьому щось не вистачає?
У мене інтерфейс називається IContext. Для цього не важливо, що він робить, крім наступного: T GetService<T>(); Що цей метод робить, це подивитися на поточний контейнер DI програми та спроби вирішити залежність. Дуже стандартно, я думаю. У моєму додатку ASP.NET MVC мій конструктор виглядає приблизно так. protected MyControllerBase(IContext ctx) { TheContext …

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

5
Види одиничних тестів на основі корисності
З ціннісної точки зору я бачу у своїй практиці дві групи одиничних тестів: Тести, які перевіряють деяку нетривіальну логіку. Написання їх (перед реалізацією чи після) виявляє деякі проблеми / потенційні помилки та допомагає бути впевненими у випадку зміни логіки в майбутньому. Тести, які перевіряють якусь дуже тривіальну логіку. Ці тести …
13 unit-testing  tdd 

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

3
Чи корисне використання одиничних тестів для розповіді історії?
Отже, у мене є модуль аутентифікації, про який я писав деякий час тому. Тепер я бачу помилки в моєму шляху і пишу для нього одиничні тести. Під час написання одиничних тестів мені важко придумати хороші імена та хороші області для тестування. Наприклад, у мене є такі речі ПотрібенLogin_should_redirect_when_not_logged_in ПотрібенLogin_should_pass_through_when_logged_in Login_should_work_when_given_proper_credentials …

1
Чи упаковка коду стороннього виробника є єдиним рішенням для тестування споживачів?
Я роблю тестування одиниць, і в одному з моїх класів мені потрібно надіслати пошту одним із методів, тому за допомогою конструкторської ін'єкції я ввожу екземпляр Zend_Mailкласу, який знаходиться в рамках Zend. Зараз деякі люди стверджують, що якщо бібліотека є достатньо стабільною і не змінюватиметься часто, то не потрібно її переробляти. …

5
Чи ефективний процедурний код тестування одиниць?
У поточному проекті повноваження, які хочуть, щоб тестування одиниць було включено в наш цикл розробки, щоб уникнути постійної кількості помилок, які, здається, проникають у наш код. Проблема полягає в тому, що код спагетті становить 95% процедурних процедур, з якими я ніколи не робив одиничне тестування (весь мій досвід тестування одиниць …

8
Яке значення перевірки при невдалі тестові одиниці?
Хоча існують способи запобігти виконанню одиничних тестів, яка цінність перевірки при невдалому одиничному тесті? Я буду використовувати простий приклад: Чутливість до справ. Поточний код залежить від регістру. Дійсний вхід до методу - "Cat", і він би повернув перерахунок Animal.Cat. Однак бажана функціональність методу не повинна враховувати регістри. Тож якби описаний …

4
Що робити, коли тести TDD виявляють нову функціональність, яка потрібна, а також потрібні тести?
Що ви робите, коли пишете тест, і добираєтесь до того, що вам потрібно зробити тестовий пропуск, і ви розумієте, що вам потрібен додатковий фрагмент функціональності, який слід розділити на його власну функцію? Ця нова функція також повинна бути протестована, але цикл TDD говорить: Зробити тест невдалим, змусити його пройти потім …
13 unit-testing  tdd 

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