Java Тестування

Тестуємо "юніти" (функції)

Тестуємо окремі елементи – без їх зв'язку з іншими

Якщо данні не збігаються з тестом, консоль стане червоною (1 test failed)

import static org.junit.Assert.assertEquals;

String obj1 = "Junit";
String obj2 = "Junit";
assertEquals(obj1, obj2);      // 1 test passed


assertEquals(2, Main.Sum(1, 1));
або
Main obj = new Main();
assertEquals(2, obj.Sum(1, 1));


assertSame("Hello", "Hello");
assertNotSame("Hello", "World");
assertNotNull("Hello");
assertNull(null);
assertTrue(1 < 2);
assertArrayEquals(arr1, arr1);


Math.abs( expected – actual ) <= delta   – для роботи з неточними типами даних

fail("Not yet implemented");

@Test  // перевіряємо генерацію throw new IllegalArgumentException("blablabla");
public void summaryOfTheGeometricProgressionNumbersWithIllegalArgumentException() {
  assertThrows(IllegalArgumentException.class, () -> {
  FunctionsTask4.sumGeometricElements(100, -0.1, 20);
  });
}

 


 

Тестування класу (в одній з функцій є помилка)

public class Calculator {
	private int value;

	public Calculator() {
		this.value = 0;
	}

	public void add(int number) {
		this.value = this.value + number;
	}

	public void subtract(int number) {
		this.value = this.value + number;
	}

	public int getValue() {
		return this.value;
	}
}


import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.Test;

class CalculatorTest {

	@Test
	public void calculatorInitialValueZero() {
		Calculator calculator = new Calculator();
		assertEquals(0, calculator.getValue());
	}

	@Test
	public void valueFourWhenFourAdded() {
		Calculator calculator = new Calculator();
		calculator.add(4);
		assertEquals(4, calculator.getValue());
	}

	@Test
	public void valueMinusThreeWhenThreeSubstracted() {
		Calculator calculator = new Calculator();
		calculator.subtract(3);
		assertEquals(-3, calculator.getValue());
	}
	
}