티스토리 툴바

BLOG main image
분류 전체보기 (1137)
내이야기 (198)
이것저것 (374)
여행잡담 (79)
잡학사전 (484)
485,475 Total
Today 334hit
Yesterday 323 hit
잡학사전/etc
테스트를 처음 접할 때 느끼는 점은 무엇을 어떻게 테스트 해야할지에 대한 막막함이 아닐까 싶습니다. JUnit을 처음 접했을 때, assert류의 메소드들을 보면서 그래 이것은 무엇이다는 알지만 어떤 상황에 어떤 값을 넣어서 결과를 비교해야할 지는 약간 막막한 기분이 들게 됩니다.
  • assert([comment], booleanValue)
  • assertTrue([comment], booleanValue)
  • assertFalse([comment], booleanValue)
  • assertEquals([comment], value1, value2)
  • assertNotEquals([comment], value1, value2)
  • assertNull([comment], value)
  • assertNotNull([comment], value)
  • assertUndefined([comment], value)
  • assertNotUndefined([comment], value)
  • assertNaN([comment], value)
  • assertNotNaN([comment], value)
  • fail(comment)
기억하고 있어야 할 API들도 많이 있구요.(JSUnit 기준으로 세어보니 12개 정도 되네요. ^^;;)

QUnit에서는 다른 테스트 툴들과 다르게 상당히 단순한 api를 제공합니다. test() 메소드 내에서 ok(), equals() 그리고 same() 상당히 단순한 assert api만 제공이 됩니다.

그러나 테스트를 한다라는 메타포를 상상(?)할 때 이들 api가 주는 강력함은 테스트 코드를 작성하는데 상당히 많은 도움을 줍니다.

테스트를 짭니다. 이 코드는 이렇게 돌아가야 해. 음~ 이 값이 나오면 되겠지(ok) 아니면 이 위치로 이동하였으니 이렇게 동작하면 될거야(ok)~.

이 메소드를 호출하면 어떤 값니 넘어와야되 둘이 같을지 비교해(equals) 봐야겠어.
이 객체는 어떠한 값들을 들고 있는데 내가 생각했던 값들과 같은지(same) 확인해 봐야겠어.
어떻게 보면 모든 메소드들이 assert류에 다 제공되고 있고, 기능도 작잖아라고 생각하실 수도 있습니다. ^^;; 그러나 내가 작성한 메타포의 구성에서 이러한 생각들을 바로 코드로 작성할 수 있는 api야말로 단순하면서도 강력한 api가 아닐까 생각해 봅니다.

그리고, 기능적으로도 당시 다른 자바스크립트 테스트 툴과 달리 start(), stop()을 사용하여 시간을 테스트 할 수 있었다는 장점도 매우 컸습니다.

  1. test("테스트 제목", function() {테스트내용})를 호출하게 되면 테스트 내용을 저장하고 있는 함수가 Queue에 저장이 됩니다.
  2. 만약에 config.blocking이 true이면 테스트가 실행이 되지만,
    테스트코드 내에서 stop()을 호출하여서 config.blocking이 false로 설정이 되면, 테스트들은 실행이 되지 않고 queue에 쌓이게 됩니다.
  3. 그리고, 다시 start()를 호출하게 되면, config.blocking이 true로 설정이 되어서 queue에 쌓인 테스트들이 다시 실행이 되게 되는거죠.
관련링크
  • QUnit
  • jQuery의 테스트 코드는 QUnit문서 아래쪽에 Reference test suites를 보시면 예제로 참고하실 수 있습니다.

Trackback Address :: http://okjungsoo.tistory.com/trackback/7954049 관련글 쓰기
Name
Password
Homepage
Secret