java
[210620] junit Assertions - Method
hjk927
2021. 6. 20. 03:11
org.junit.jupiter.api.Assertions
Assertions에는 JUnit 테스트를 위한 메소드가 있다. 테스트를 할 때 상태를 확인하기 위한 메소드를 제공한다.
Method
assertAll(Executable... excutables)
모든 표현식을 수행하고, 에러를 발생시키지 않는지 확인한다.
@Test
public void assertAllTest(){
Assertions.assertAll(()->{
System.out.println("first");
}, ()->{
System.out.println("second");
}, ()->{
System.out.println("third");
});
}
assertArrayEquals(Object[] expected, Object[] actual)
두 객체의 값이 같은 지 확인한다.
@Test
public void assertArrayEqualsTest(){
int[] expected = {1, 2, 3};
int[] actual = {1, 2, 3};
Assertions.assertArrayEquals(expected, actual);
}
assertEquals(Object expected, Object actual)
두 객체가 저장하는 값이 같은지 확인한다.
assertNotEquals(Object expected, Object actual)
두 객체가 저장하는 값이 같지 않은지 확인한다.
public static class Person{
String name;
int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Person person = (Person) o;
if (age != person.age) return false;
return name != null ? name.equals(person.name) : person.name == null;
}
}
@Test
public void assertEqualsTest(){
Person expectedPerson = new Person("James", 20);
Person actualPerson = new Person("James", 20);
Assertions.assertEquals(expectedPerson, actualPerson);
}
@Test
public void assertNotEqualsTest(){
Person expectedPerson = new Person("James", 20);
Person actualPerson = new Person("James", 30);
Assertions.assertNotEquals(expectedPerson, actualPerson);
}
assertNotNull(Object actual)
객체가 null이 아닌지 확인한다.
@Test
public void assertNotNullTest(){
Person person = new Person("James", 20);
Assertions.assertNotNull(person);
}
assertSame(Object expected, Object actual)
두 객체가 실제로 같은 객체인지 확인한다.
@Test
public void assertSameTest(){
Person expectedPerson = new Person("James", 20);
Person actualPerson = expectedPerson;
Assertions.assertSame(expectedPerson, actualPerson);
}
assertNotSame(Object expected, Object actual)
두 객체가 다른 객체인지 확인한다.
@Test
public void assertNotSameTest(){
Person expectedPerson = new Person("James", 20);
Person actualPerson = new Person("James", 20);
Assertions.assertNotSame(expectedPerson, actualPerson);
}
assertThrows(Class<T> expectedType, Executable executable)
표현식을 수행했을 때 주어진 에러가 발생하는지 확인한다.
@Test
public void assertThrowsExceptionTest() {
Assertions.assertThrows(IndexOutOfBoundsException.class, ()->{
int[] arr = {1, 2, 3, 5};
arr[5] = 0;});
}
assertTimeout(Duration timeout, Executable executable)
표현식이 주어진 시간 안에 수행되는지 확인한다.
@Test
public void assertTimeOutTest() {
Assertions.assertTimeout(Duration.ofMinutes(3), ()->{
int sum = 0;
for(int i = 0 ; i < 500000 ; i++){
sum += i;
}
System.out.println(sum);
});
}
assertTrue(boolean condition)
매개변수로 받은 조건문이 true인지 확인한다.
@Test
public void assertTrueTest(){
Assertions.assertTrue(2==2);
}
assertFalse(boolean condition)
매개변수로 받은 조건문이 false인지 확인한다.
@Test
public void assertFalseTest(){
Assertions.assertFalse(2==3);
}
fail(String message)
테스트를 강제로 실패 상태로 만들 때 사용한다. 호출 시 매개변수로 받은 메시지를 출력한다.
@Test
public void failTest(){
for(int i = 0 ; i < 5 ; i++){
System.out.println(i);
if(i == 3) {
Assertions.fail("이 테스트는 실패합니다.");
}
}
}
Output
fail test를 제외하고는 모두 통과한다.
Assertions 클래스의 메소드는 테스트를 할 때 유용하게 사용할 수 있다.
- Reference
https://howtodoinjava.com/junit5/junit-5-assertions-examples/