|
'ruby on rails의 가장 강력한 점' 이라고 뽑히는것은 수도 없이 많다. 그만큼 ruby on rails가 여러가지로 뛰어나기 때문이다. 그동안 내가 가장 간과해 왔던 부분은 아마 test가 일 것이다. 하지만, 오늘 그 test의 위대함을 몸으로 깨닫고, 놀라움을 감추지 못해서 포스팅을 해 볼까 한다. 레일즈에는 fixture 라는것이 있다. 웹 어플리케이션을 개발할 때엔, '테스트셋'의 존재가 반드시 필요하다. 예상되는 데이터를 미리 넣어놓고, 그들이 잘 동작하는지 확인해야 하는 작업이 반드시 필요하기 때문이다. fixture는 그 역할을 한다. YAML 타입으로 기술을 해 놓으면, 레일즈 시작과 동시에 필요한 데이터를 저장해 놓는다. 따라서 매번 테스트셋을 로딩하거나, 삽입할 필요가 없어진다. 레일즈에는 mock 라는것이 있다. 이는 마치 모터쇼에 전시된 컨셉카와 비슷하다. 실제로 겉은 반지르르 한데, 내용은 깡통인 그런것이다. 웹 어플리케이션을 개발할때, 결제 시스템을 안에 넣는다고 해 보자. 그렇다면, 디버깅을 하는 동안 계속 결제를 해야 할까. 그렇다면 배보다 배꼽이 더 클 것이다. 작업을 분담한다고 했을때, 상대편의 작업이 끝날때까지 내가 기다려야 하는 상황도 있을 것이다. mock 객체를 이용하면, 실제 결제는 되지 않지만, 결제되는 '척'하는 기능을 만들 수 있다. mock 객체를 이용하면, 상대편의 작업을 임의로 만들어 놓고(마치 모터쇼의 깡통차처럼), 나의 개발을 계속할 수 있다. 그리고 breakpoint가 걸린다. 웹 개발에서는 보통 alert()를 호출하거나, print 문을 이용하여 디버깅 하는데, 레일즈는 breakpoint를 제공하여, 정지/재시작을 가능하게 하며, breakpoint가 걸린 부분의 해당 변수값도 읽어 올 수 있다. breakpoint가 걸린 현재위치에서 정보를 수정한다음에, continue 하는것도 가능하다. 여기서 더 자세한 설명을 하는것보다. 직접 코딩을 해 보는게 더 좋을 것이다. (라는 말투는 번역을 하면서 새로 배운 말투다.) # by | 2008/05/31 18:22 | [:Dear Diary:] | 트랙백(1) | 덧글(6) |
|


카테고리


☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
제목 : 프로그래머를 위한 안전띠
spatialguy의 얼음집: "소년이여 신화가 되어라!"의 ruby on rails에서 test를 쓰지 않으면, 실제로 반도 안 쓰는 것 에서 트랙백. 요즘의 프로그래머들이 다뤄야하는 현실의 문제는 매우 복잡......more
Fixture 자체는 TDD에서 많이 쓰는 xUnit 류에서 거의 제공하는 기능이고 ~_~
원래 TDD부터 설명을 해내고, RoR까지 내려오는게 올바른 글이겠지만,
TDD까지 가면, 너무 내용이 방대해질것 같아서, 적당히 RoR에서 멈췄어요-