JUnit 이 무엇인가?


간단하게 테스트를 위한 클래스를 만들고 테스트 하는거..


메소드 몇개 정리하고 갑니다.


Methods

 - assertEquals(A, B)

   A와 B가 일치하는지를 조사한다. A, B에는 Object, int, float, long, char, boolean등 모든 자료형이 들어갈 수 있다. 단 A, B의 타입은 언제나 같아야만 한다.

 - assertTrue(K)

   K가 참인지를 조사한다.

   K는 boolean형태의 값이어야 한다.

 - assertFalse(K)

   K가 거짓인지를 조사한다. assertTrue와 반대

   K는 boolean형태의 값이어야 한다.

 - assertNotNull(Object A)

   A가 Null이 아닌지를 확인한다.

   Null이라면 assertionFailedError가 발생

 - assertNull(Object A)

   A가 Null인지를 확인한다.

   Null이 아니라면 assertionFailedError가 발생

 - assertSame(Object A, Object B)

   A와 B가 같은 객체인지를 조사한다.



물론 목객체 라든지 다른 방법들도 있는데 작은단위에서 널리 활용될 메소드들이다.


버퍼 같은것도 많이 사용되는듯 하고..


퍼트려도 될런진 몰르지만.. 배포는 아니니.. 오래 되었지만 참고할 만한 동영상 링크도 걸어 보겠..;;


http://xper.org/LineReaderTdd/

동영상이다 걍 보쟈..


(문제가 된다면 삭제 하겠습니다.)


글고 메소드나 사용법등이 자세히 되어있는 블로그다

http://netrance.blog.me/110169530575


Spring에서 interface를 만들어야 하는 이유가 뭘까? 일주일 전 쯤 처음 spring 을 접할때 이런 의문을 가졌었고 그 후 일주일 후 개발을 진행해 가면서 이 의문이 풀리게 되었다. 토비의 책에도 나와있는 내용이지만 실제 경험을 통해 느끼게 되었다. 그 이유는 다음 3가지이다.


  1. 변하지 않는 소프트웨어는 없다.
  2. 객체지향 개념에 더 맞는다.
  3. 테스트를 위해서 이다.


이 중 마지막 테스트를 위해서 만든 다는 것이 진리인 것 같다. 보통 Junit 을 이용해 테스트 케이스를 만드는데 이 경우 약한 결합의 구현이 없다면 유연한 테스트가 불가능하다. 하지만 이 경우도 아니고 절대 never never 변할지 않을 부분이라면 성능 저하를 가져오면서 까지 concrete 하지 않은 구현체를 만들지 않을 필요는 없다고 생각한다. 하지만 테스트는 왠만해서는 필수다. 테스트 없는 개발은... 너무 눈가리고 뛰어가는 것과 같다고나 할까? 어디로 가고있는지 언제 넘어질 지 모르는 것 같다.


 

Junit에서 Exception이 발생할 경우 성공으로 확인하고 싶을 때는 다음과 같이 excepted를 추가해주면 된다.

 

@Test(expected=UnsupportedOperationException.class)

public void renameFolder() {

    this.obj.renameFolder("", "");

}

 

파란막대 좋아~ ^^*

 

assertThat(result, is(true));

 

위 코드에서 이클립스에서 Junit에서 지원하는 버전을 추가했는데도 assertThat구문에 x표가 뜰 때가 있다. 해결방법은 다음 두 import를 수동으로 추가하면 된다.

 

import static org.junit.Assert.*;

import static org.hamcrest.CoreMatchers.*;

 

ctrl+shift+o 로 하면 지워진다. 왜 그런지.. 잘 모르겠다.


http://whiteship.tistory.com/1739 참고

+ Recent posts