assertions java java assert tutorial with code examples
Този урок за утвърждаване на Java обяснява всичко за твърденията в Java. Ще се научите да активирате и деактивирате твърдения, как да използвате твърдения, примери за твърдение и т.н.:
В нашите по-ранни уроци вече обсъдихме изключения в Java. Това са грешките, които се улавят по време на изпълнение. Подобно на изключенията, има някои други конструкции, които можем да използваме по време на компилация, за да тестваме коректността на кода. Тези конструкции се наричат „Утвърждения“.
В този урок ще обсъдим подробно твърденията в Java. Можем да определим едно твърдение като конструкция, която ни позволява да тестваме правилността или яснотата на предположенията, които сме направили в нашата програма Java.
как да стартирам jar файлове на Windows 10
=> Погледнете тук ръководството за начинаещи Java.
Какво ще научите:
Твърдения в Java
По този начин, когато изпълняваме твърдение в програма, се приема, че е вярно. Ако стане фалшив или се провали, JVM ще изхвърли AssertionError.
Ние използваме твърдения по време на разработката с цел тестване. По време на изпълнение твърдения са деактивирани от Java.
Как се различават твърденията от нормалните изключения?
За разлика от нормалните изключения, твърденията са полезни главно за проверка на логическите ситуации в програма, за която имаме съмнения. Също в противоречие с нормалните изключения, които също могат да бъдат хвърлени по време на изпълнение, твърденията са деактивирани по време на изпълнение.
Твърденията могат да се използват на местата в кода, където разработчикът има максимален контрол, като те могат да се използват като параметри на частни методи. Твърденията могат да се използват и с условни случаи. По същия начин условията в началото на всеки метод могат да съдържат твърдения.
Твърденията обаче не трябва да се приемат като заместител на съобщенията за грешки. Нито твърденията не трябва да се използват в публични методи, например, за проверка на аргументи. Най-важното е, че не трябва да използваме твърдения за аргументи от командния ред в Java.
В Java твърденията са деактивирани по подразбиране. Така че за да работят твърденията в Java програма, първо трябва да активираме твърденията.
Активиране на твърдения в Java
За да активираме твърдения, трябва да го направим от командния ред.
Следва общият синтаксис за активиране на Assertion в Java.
java –ea: arguments
или
java –enableassertions: arguments
Като пример можем да активираме твърдения за определен клас, както е показано по-долу:
java –ea TestProgram
или
java –enableassertions TestProgram
Тук TestProgram е клас, за който твърдението трябва да бъде активирано.
Когато условието е вярно в изявлението за утвърждаване в програмата и твърденията са активирани, тогава програмата ще изпълнява нормално. Когато условието е невярно и твърденията са разрешени, тогава програмата изхвърля AssertionError и програмата спира.
Има различни варианти за разрешаване на твърдения с помощта на командния ред.
# 1) java –ea
Когато горната команда е дадена в командния ред, тогава твърденията са разрешени във всички класове, с изключение на системните класове.
# 2) java –ea Main
Горната команда позволява твърдение за всички класове в основната програма.
# 3) java –ea TestClass Main
Тази команда позволява твърдения само за един клас - ‘TestClass’ в основната програма.
# 4) java –ea com.packageName ... Основна
Горната команда позволява твърдение за пакет com.packageName и неговите подпакети в основната програма.
# 5) java –ea ... Основно
Позволява твърдение за неназования пакет в текущата работна директория.
# 6) java –esa: аргументи ИЛИ java –enablesystemassertions: аргументи
Горната команда позволява твърдения за системните класове.
Деактивиране на твърдения
Също така можем да деактивираме твърденията чрез командния ред.
Общият синтаксис за деактивиране на твърдения в Java е:
java –da arguments
ИЛИ
java –disableassertions arguments
По същия начин, за да деактивираме твърдения в системни класове, използваме следния синтаксис:
java – dsa: arguments
ИЛИ
java –disablesystemassertions:arguments
„Assert“ ключова дума в Java
Езикът Java предоставя ключовата дума „assert“, която позволява на разработчиците да проверят предположенията, които са направили за програмата или състоянието на програмата.
Така че можем да използваме ключовата дума „assert“, за да предоставим твърдения в Java, за да проверим условия, които иначе могат да попречат на програмата да работи безпроблемно.
Ключовата дума „assert“ се използва от Java 1.4, но остава малко известната ключова дума в Java. Когато използваме ключовата дума assert в Java, трябва да го направим в изявление Assert.
Утвърждаване на изявление в Java
В Java изявлението за започване започва с ключовата дума ‘актив’, последвано от булев израз.
Изявлението за твърдение в Java може да бъде написано по два начина:
- утвърждавам израз;
- твърдят израз1: израз2;
И в двата подхода изразите, използвани с ключовата дума Assert, са булеви изрази.
Да разгледаме следното твърдение като пример.
assert value >= 10 : “greater than 10”;
Тук изявлението assert проверява за състояние и ако условието е вярно, се отпечатва съобщение. По този начин ние също можем да имаме твърдения с нашето послание.
Как да използвам Assert в Java
Досега обсъждахме ключовата дума assert и изявление assert в Java. Сега, нека разгледаме пример, за да покажем как да използвам assert в Java.
За да добавим твърдения, трябва просто да добавим твърдение за твърдение, както следва:
public void setup_connetion () { Connection conn = getConnection (); assert conn != null; }
Също така можем да дадем горното твърдение по различен начин, както е показано по-долу:
public void setup_connection () { Connection conn = getConnection (); assert conn != null: “Connection is null”; }
И двете горни конструкции на кода проверяват дали връзката връща ненулева стойност. Ако върне нулева стойност, тогава JVM ще изведе грешка - AssertionError. Но във втория случай се предоставя съобщение в изявлението за твърдение, така че това съобщение ще се използва за изграждане на AssertionError.
Във втория случай с активирани твърдения изключението ще изглежда така:
Exception in thread 'main' java.lang.AssertionError: Connection is null at line numbers…
Пример за потвърждение в Java
Нека да приложим пример за използване на твърдения в Java.
public class Main { public static void main(String() args) { try { System.out.println('Testing Assertions...'); assert true : 'We don't see this.'; assert false : 'Visible if assertions are ON.'; } catch (AssertionError e) { e.printStackTrace(); } } }
Изход
Горният изход се дава, когато твърденията не са разрешени. Ако твърдението е активирано, тогава ще се покаже второто съобщение (твърди невярно).
Сега нека демонстрираме друг пример . Имайте предвид, че тук сме активирали твърдението в Java на нашата машина, където изпълняваме тази програма.
class Main { public static void main(String args()) { String() weekends = {'Friday', 'Saturday', 'Sunday'}; assert weekends.length == 2; System.out.println('We have ' + weekends.length + ' weekend days in a week'); } }
Изход
Тъй като продължителността на уикенда не съвпада с дължината, посочена в изявлението за утвърждаване, се изключва горното изключение. Ако твърдението беше деактивирано, тогава програмата щеше да покаже посоченото съобщение вместо да се твърди изключение.
Защо твърденията се използват в Java?
Използваме твърдения в нашата програма Java, за да сме сигурни, че предположенията, които сме направили в нашата програма, са верни.
Например, ако искаме да се уверим, че кодът, който изглежда недостижим, наистина е недостижим. Или искаме да се уверим, че всяка променлива има стойност в определен диапазон.
Когато правим такова предположение, ние предоставяме твърдения, за да се уверим, че те наистина са верни.
често задавани въпроси
Въпрос # 1) Асертът ли изхвърля Java изключение?
Отговор: Assert обикновено изхвърля “AssertionError”, когато направеното предположение е грешно. AssertionError се простира от клас Error (който в крайна сметка се простира от Throwable).
В # 2) Какво се случва, когато дадено твърдение се провали в Java?
Отговор: Ако твърденията са активирани за програмата, в която твърдението е неуспешно, то ще изхвърли AssertionError.
Въпрос # 3) Какво връща утвърждаването в Java?
Отговор: Изявление за утвърждаване декларира логическо условие, което се очаква да се появи в програма. Ако това булево условие е лошо, тогава по време на изпълнение се дава AssertionError, при условие че твърдението е активирано.
Ако предположението е вярно, тогава логическото условие ще върне вярно.
В # 4) Можем ли да уловим грешката в твърдението?
Отговор: Изхвърлената AssertionError от инструкцията assert е непроверено изключение, което разширява класа Error. По този начин твърденията не са задължени да ги декларират изрично и също така няма нужда да ги опитвате или хващате.
В # 5) Как да отстоявате изключение?
Отговор: За да заявим изключение, декларираме обект на ExpectedException, както следва:
публично изключение ExpectedException = ExpectedException. нито един ();
След това използваме методите, които се очаква () и очакваме message () в метода Test, за да утвърдим изключението и да дадем съобщението за изключение.
Заключение
С това приключихме този урок за твърдения в Java. Обсъдихме дефиницията и целта на твърденията в Java. За да използваме твърдение в програма Java, първо трябва да им дадем възможност да използват командния ред.
Проучихме различните начини, чрез които можем да активираме твърдения на ниво програма, ниво пакет, ниво директория и др. Утвърждаване на ключови думи и твърдения за твърдения в Java и беше обсъден техният подробен синтаксис с примери за програмиране. Изявленията за ключови думи и активи на отстояването ни помагат да използваме твърдения.
Видяхме, че AssertionError се дава, когато едно твърдение е неуспешно. Твърденията в Java се използват предимно по време на компилация и по подразбиране са деактивирани по време на изпълнение.
Освен това твърденията се използват най-вече в JUnit рамката на Java, в която пишем тестовите случаи за тестване на приложения.
=> Прочетете серията Easy Training Training.
Препоръчително четене
- Твърдения в селен с помощта на рамки Junit и TestNG
- Примери за твърдение на селен - практически приложения в проекти
- Твърдение в SOAtest с пример за XML код
- C ++ Assert (): Обработка на твърдения в C ++ с примери
- Разбиране на твърдения в SoapUI - Урок № 5 за SoapUI
- Урок за JAVA за начинаещи: 100+ практически ръководства за Java видео
- Назъбен масив в Java - урок с примери
- Java DataTypes, Loops, Arrays, Switch и Assertions