Учебники

JUnit — Использование утверждения

Все утверждения находятся в классе Assert.

public class Assert extends java.lang.Object

Этот класс предоставляет набор методов утверждения, полезных для написания тестов. Только ошибочные утверждения записываются. Вот некоторые из важных методов класса Assert:

Sr.No. Методы и описание
1

void assertEquals (логическое ожидание, логическое фактическое)

Проверяет, что два примитива / объекта равны.

2

void assertTrue (логическое условие)

Проверяет, что условие верно.

3

void assertFalse (логическое условие)

Проверяет, что условие ложно.

4

void assertNotNull (Объектный объект)

Проверяет, что объект не является нулевым.

5

void assertNull (Объектный объект)

Проверяет, что объект является нулевым.

6

void assertSame (object1, object2)

Метод assertSame () проверяет, указывают ли две ссылки на один и тот же объект.

7

void assertNotSame (object1, object2)

Метод assertNotSame () проверяет, не ссылаются ли две ссылки на один и тот же объект.

8

void assertArrayEquals (pectedArray, resultArray);

Метод assertArrayEquals () проверит, равны ли два массива друг другу.

void assertEquals (логическое ожидание, логическое фактическое)

Проверяет, что два примитива / объекта равны.

void assertTrue (логическое условие)

Проверяет, что условие верно.

void assertFalse (логическое условие)

Проверяет, что условие ложно.

void assertNotNull (Объектный объект)

Проверяет, что объект не является нулевым.

void assertNull (Объектный объект)

Проверяет, что объект является нулевым.

void assertSame (object1, object2)

Метод assertSame () проверяет, указывают ли две ссылки на один и тот же объект.

void assertNotSame (object1, object2)

Метод assertNotSame () проверяет, не ссылаются ли две ссылки на один и тот же объект.

void assertArrayEquals (pectedArray, resultArray);

Метод assertArrayEquals () проверит, равны ли два массива друг другу.

Давайте использовать некоторые из вышеупомянутых методов в примере. Создайте файл класса Java с именем TestAssertions.java в C: \> JUNIT_WORKSPACE.

import org.junit.Test;
import static org.junit.Assert.*;

public class TestAssertions {

   @Test
   public void testAssertions() {
      //test data
      String str1 = new String ("abc");
      String str2 = new String ("abc");
      String str3 = null;
      String str4 = "abc";
      String str5 = "abc";
		
      int val1 = 5;
      int val2 = 6;

      String[] expectedArray = {"one", "two", "three"};
      String[] resultArray =  {"one", "two", "three"};

      //Check that two objects are equal
      assertEquals(str1, str2);

      //Check that a condition is true
      assertTrue (val1 < val2);

      //Check that a condition is false
      assertFalse(val1 > val2);

      //Check that an object isn't null
      assertNotNull(str1);

      //Check that an object is null
      assertNull(str3);

      //Check if two object references point to the same object
      assertSame(str4,str5);

      //Check if two object references not point to the same object
      assertNotSame(str1,str3);

      //Check whether two arrays are equal to each other.
      assertArrayEquals(expectedArray, resultArray);
   }
}

Затем создайте файл класса Java с именем TestRunner.java в C: \> JUNIT_WORKSPACE для выполнения тестовых примеров.

import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;

public class TestRunner2 {
   public static void main(String[] args) {
      Result result = JUnitCore.runClasses(TestAssertions.class);
		
      for (Failure failure : result.getFailures()) {
         System.out.println(failure.toString());
      }
		
      System.out.println(result.wasSuccessful());
   }
} 

Скомпилируйте классы Test case и Test Runner, используя javac.

C:\JUNIT_WORKSPACE>javac TestAssertions.java TestRunner.java

Теперь запустите Test Runner, который запустит тестовый набор, определенный в предоставленном классе Test Case.

C:\JUNIT_WORKSPACE>java TestRunner

Проверьте вывод.

true

аннотирование

Аннотации похожи на метатеги, которые вы можете добавить в свой код и применять их к методам или в классе. Эти аннотации в JUnit предоставляют следующую информацию о методах тестирования —

  • какие методы будут выполняться до и после методов тестирования.
  • какие методы выполняются до и после всех методов, и.
  • какие методы или классы будут игнорироваться во время выполнения.

В следующей таблице приведен список аннотаций и их значения в JUnit —

Sr.No. Аннотация и описание
1

@Тестовое задание

Аннотация Test сообщает JUnit, что открытый метод void, к которому он присоединен, может быть запущен как тестовый пример.

2

@До

Несколько тестов нуждаются в похожих объектах, созданных до их запуска. Аннотирование открытого метода void с помощью @Before приводит к тому, что этот метод запускается перед каждым методом Test.

3

@После

Если вы выделяете внешние ресурсы в методе «До», вам необходимо освободить их после выполнения теста. Аннотирование открытого метода void с помощью @After приводит к тому, что этот метод запускается после метода Test.

4

@BeforeClass

Аннотирование открытого статического метода void с помощью @BeforeClass заставляет его запускаться один раз перед любым из тестовых методов в классе.

5

@После школы

Это выполнит метод после завершения всех тестов. Это может быть использовано для выполнения действий по очистке.

6

@Ignore

Аннотация Ignore используется для игнорирования теста, и этот тест не будет выполнен.

@Тестовое задание

Аннотация Test сообщает JUnit, что открытый метод void, к которому он присоединен, может быть запущен как тестовый пример.

@До

Несколько тестов нуждаются в похожих объектах, созданных до их запуска. Аннотирование открытого метода void с помощью @Before приводит к тому, что этот метод запускается перед каждым методом Test.

@После

Если вы выделяете внешние ресурсы в методе «До», вам необходимо освободить их после выполнения теста. Аннотирование открытого метода void с помощью @After приводит к тому, что этот метод запускается после метода Test.

@BeforeClass

Аннотирование открытого статического метода void с помощью @BeforeClass заставляет его запускаться один раз перед любым из тестовых методов в классе.

@После школы

Это выполнит метод после завершения всех тестов. Это может быть использовано для выполнения действий по очистке.

@Ignore

Аннотация Ignore используется для игнорирования теста, и этот тест не будет выполнен.

Создайте файл Java-класса с именем JunitAnnotation.java в C: \> JUNIT_WORKSPACE для проверки аннотации.

import org.junit.After;
import org.junit.AfterClass;

import org.junit.Before;
import org.junit.BeforeClass;

import org.junit.Ignore;
import org.junit.Test;

public class JunitAnnotation {
	
   //execute before class
   @BeforeClass
   public static void beforeClass() {
      System.out.println("in before class");
   }

   //execute after class
   @AfterClass
   public static void  afterClass() {
      System.out.println("in after class");
   }

   //execute before test
   @Before
   public void before() {
      System.out.println("in before");
   }
	
   //execute after test
   @After
   public void after() {
      System.out.println("in after");
   }
	
   //test case
   @Test
   public void test() {
      System.out.println("in test");
   }
	
   //test case ignore and will not execute
   @Ignore
   public void ignoreTest() {
      System.out.println("in ignore test");
   }
}

Затем создайте файл класса Java с именем TestRunner.java в C: \> JUNIT_WORKSPACE для выполнения аннотаций.

import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;

public class TestRunner {
   public static void main(String[] args) {
      Result result = JUnitCore.runClasses(JunitAnnotation.class);
		
      for (Failure failure : result.getFailures()) {
         System.out.println(failure.toString());
      }
		
      System.out.println(result.wasSuccessful());
   }
} 

Скомпилируйте классы Test case и Test Runner, используя javac.

C:\JUNIT_WORKSPACE>javac JunitAnnotation.java TestRunner.java

Теперь запустите Test Runner, который запустит тестовый набор, определенный в предоставленном классе Test Case.

C:\JUNIT_WORKSPACE>java TestRunner

Проверьте вывод.