ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Java] 읽기 쉬운 테스트를 위한 Hamcrest 사용하기
    Java 2019. 4. 15. 00:46

    Hamcrest는 자바 유닛 테스트 작성 시 자주 사용되는 프레임워크다. JUnit에 포함되어 있어 쉽게 사용 가능하며 matcher 라이브러리를 호출하여 좀 더 읽기 쉬운 테스트 코드 작성에 도움을 준다.

     

    간단한 테스트

    import org.junit.jupiter.api.Test;
    import static org.hamcrest.MatcherAssert.assertThat; 
    import static org.hamcrest.Matchers.*;
    
    public class BiscuitTest {
      @Test 
      public void testEquals() { 
        Biscuit theBiscuit = new Biscuit("Ginger"); 
        Biscuit myBiscuit = new Biscuit("Ginger"); 
        assertThat(theBiscuit, equalTo(myBiscuit)); 
      } 
    } 

    Hamcrest 프레임워크는 기본적으로 assertThat을 사용하여 비교를 권장한다.

    Hamcrest 프레임워크의 구성

    Core
    anything - always matches, useful if you don’t care what the object under test is
    describedAs - decorator to adding custom failure description
    is - decorator to improve readability - see “Sugar”, below

    Logical
    allOf - matches if all matchers match, short circuits (like Java &&)
    anyOf - matches if any matchers match, short circuits (like Java   )
    not - matches if the wrapped matcher doesn’t match and vice versa

    Object
    equalTo - test object equality using Object.equals
    hasToString - test Object.toString
    instanceOf, isCompatibleType - test type
    notNullValue, nullValue - test for null
    sameInstance - test object identity

    Beans
    hasProperty - test JavaBeans properties

    Collections
    array - test an array’s elements against an array of matchers
    hasEntry, hasKey, hasValue - test a map contains an entry, key or value
    hasItem, hasItems - test a collection contains elements
    hasItemInArray - test an array contains an element

    Number
    closeTo - test floating point values are close to a given value
    greaterThan, greaterThanOrEqualTo, lessThan, lessThanOrEqualTo - test ordering

    Text
    equalToIgnoringCase - test string equality ignoring case
    equalToIgnoringWhiteSpace - test string equality ignoring differences in runs of whitespace
    containsString, endsWith, startsWith - test string matching

     

    출처:

    http://hamcrest.org/JavaHamcrest/tutorial

    댓글

Designed by Tistory.