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

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

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

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

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

3
Чи потрібно все-таки використовувати Debug.Assert сьогодні?
Нещодавно я натрапив на якийсь нещодавно написаний код, який перемішувався з великою кількістю Debug.Assert (C #). Чи повинні ми все ще широко використовувати це, незважаючи на використання TDD, BDD та Unit Testing в цілому?

8
Чи мають бути твердження у версії версій
Поведінка за замовчуванням assertв C ++ полягає в тому, щоб нічого не робити у версіях версій. Я припускаю, що це робиться з міркувань продуктивності та, можливо, для того, щоб користувачі не бачили неприємних повідомлень про помилки. Однак я б заперечував, що ті ситуації, коли assertвистрілив, але був відключений, є ще …

9
Занадто багато запаху коду?
Я дійсно закохався в тестування одиниць та TDD - я заражений. Однак одиничне тестування зазвичай використовується для публічних методів. Іноді, хоча мені доводиться перевіряти деякі припущення-твердження і в приватних методах, оскільки деякі з них "небезпечні", і рефакторинг не може допомогти далі. (Я знаю, тестування рамок дозволяє тестувати приватні методи). Тож …

1
Одиничні тести: відкладені твердження з Linq
Чи нормально додавати такі відкладені твердження var actualKittens = actualKittens.Select(kitten => { Assert.IsСute(kitten); return kitten }); Чому? Тож я можу повторити лише один раз навіть із заявами, що очікують матеріалізованої колекції, наприклад: CollectionAssert.AreEquivalent(expectedKittens, actualKittens.ToList()); А також це може бути не просто Select, а метод з визначеним ітератором, що має багато …

5
Як я можу покращити перевірку помилок та обробку помилок?
Останнім часом я намагаюся зрозуміти, що таке правильна кількість перевірок та які належні методи. У мене є кілька питань щодо цього: Який правильний спосіб перевірити наявність помилок (поганий ввід, поганий стан тощо)? Чи краще чітко перевірити наявність помилок або використовувати такі функції, як твердження, які можна оптимізувати з вашого остаточного …
13 c  testing  assertions 

3
Python - затверджуйте vs if & return
Я пишу сценарій, який щось робить у текстовому файлі (однак це не має значення для мого питання). Тому перед тим, як зробити щось у файл, я хочу перевірити, чи існує файл. Я можу це зробити, без проблем, але питання більше стосується естетики. Ось мій код, реалізуючи одне і те ж …

1
Введення качок, перевірка даних та затверджувальне програмування в Python
Про набір качок : Введення качок допомагає звичайним чином не перевіряти тип аргументів у органах методів та функцій, спираючись на документацію, чіткий код та тестування для забезпечення правильного використання. Про перевірку аргументів (EAFP: простіше просити пробачення, ніж дозволу). Адаптований приклад звідси : ... вважається більш пітонічним зробити: def my_method(self, key): …

2
кодові договори / твердження: що з дублюючими чеками?
Я великий шанувальник написання тверджень, контрактів або будь-якого типу чеків, доступних мовою, якою я користуюся. Одне, що мене трохи турбує, - це те, що я не впевнений, що є загальною практикою роботи з дублюючими чеками. Приклад ситуації: Спочатку я записую наступну функцію void DoSomething( object obj ) { Contract.Requires<ArgumentNullException>( obj …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.