&pgid;

**¤³¤Î¥Ú¡¼¥¸¤Ï¡© [#n3541592]
²¼µ­¤Î¥Í¥¿¤ò¸µ¤ËRspec¤Ë¤Ä¤¤¤ÆÊÙ¶¯¤·¤Æ¤ß¤ë¥Ú¡¼¥¸¤Ç¤¹¡£
-Rubyist Magazine - ¥¹¤Ï¥¹¥Ú¥Ã¥¯¤Î¥¹ ¡ÚÂè 1 ²ó¡Û RSpec ¤Î³µÍפȡ¢RSpec on Rails (¥â¥Ç¥ëÊÔ)
http://jp.rubyist.net/magazine/?0021-Rspec

-File: TUTORIAL.ja
http://kakutani.com/trans/rspec/TUTORIAL_ja.html

-º£²ó¤ÏÂè°ì²ó¤È¤¤¤¦¤³¤È¤ÇRspec¤Î´ðËÜŪ¤Ê¹Í¤¨Êý¤Ë¤Ä¤¤¤Æ¤Î¤ß¤ò¾Ò²ð¤·¤Þ¤¹¡£

**Ìܼ¡ [#wd9223a3]
#contents

**Æü»þ [#xf19520d]
- 2007/10/12(¶â) 11:00¤¯¤é¤¤ ¡Á

**»²²Ã¼Ô [#b239fcd8]


*ËÜÊÔ [#v60241bf]

**Rspec¤È¤Ï¡© [#f97e1315]
-Ruby¾å¤Ç¥Ó¥Ø¥¤¥Ó¥¢¶îÆ°³«È¯(Behavior Driven Development)¤ò¼Â¸½¤¹¤ë¤¿¤á¤Î¥Õ¥ì¡¼¥à¥ï¡¼¥¯

-¤Á¤ç¤Ã¤ÈÂԤƥӥإ¤¥Ó¥¢¶îÆ°³«È¯¤Ã¤Æ²¿¤À¡©
**¥Ó¥Ø¥¤¥Ó¥¢¶îÆ°³«È¯(Behavior Driven Development)¤È¤Ï¡© [#z81b03f0]
-Q. ¥Ó¥Ø¥¤¥Ó¥¢¶îÆ°³«È¯(°Ê²¼BDD)¤È¤Ï¡©
-A. ¥×¥í¥°¥é¥à¤ÎËþ¤¿¤¹¤Ù¤­»ÅÍÍ(¿¶Éñ)¤òµ­½Ò¤·¤Æ¤«¤é¥×¥í¥°¥é¥àËÜÂΤκîÀ®¤ò»Ï¤á¤ë³«È¯¼êË¡¤Î¤³¤È
-Q. ¤½¤ì¤Ã¤Æ¥Æ¥¹¥È¶îÆ°³«È¯¤È²¿¤¬°ã¤¦¤Î¤«¡©
--¥Æ¥¹¥È¶îÆ°³«È¯¤â¡¢¥×¥í¥°¥é¥à¤ËÂФ¹¤ë¥Æ¥¹¥È¤ò½ñ¤¤¤Æ¤«¤é¡¢¥×¥í¥°¥é¥àËÜÂΤκîÀ®¤ò»Ï¤á¤ë³«È¯¼êË¡¤Ç¤·¤ç¡©¥Æ¥¹¥È¤ò¿¶Éñ¤Ë¸À¤¤´¹¤¨¤¿¤À¤±¤Ç¤Ï¡©
-A. ¤Þ¤¢¤½¤¦¤¤¤¦Â¦Ì̤⤢¤ë
-Q. ¤¸¤ã¤¢¡¢¤ï¤¶¤ï¤¶¤ä¤ë°ÕÌ£¤Ê¤¤¤¸¤ã¤ó
-A. ¤¤¤ä¤¤¤ä¸ÀÍÕ¤¬°ã¤¦¤À¤±¤Ç¤âÂçÊѤʰ㤤¤À
--¿ÍÎà³Ø¼Ô¡¢¸À¸ì³Ø¼Ô¤È¤·¤Æͭ̾¤Ê¥¨¥É¥ï¡¼¥É¡¦¥µ¥Ô¥¢¤Î¸ÀÍդˡ֡ظ½¼Â¤ÎÀ¤³¦¡Ù¤È¤¤¤¦¤â¤Î¤Ï¡¢Â¿¤¯¤Î¸ÂÅ٤ˤޤǡ¢¤½¤Î½¸ÃĤθÀ¸ì½¬´·¤Î¾å¤Ë̵°Õ¼±Åª¤Ë·Á¤Å¤¯¤é¤ì¤Æ¤¤¤ë¤Î¤Ç¤¢¤ë ¡×¤È¤¤¤¦¸ÀÍդ⤢¤ê¤Þ¤¹¤·¡¢Î㤨¤ÐÆú¤Î¿§¤Î¿ô¤Ã¤Æ¤¤¤¦¤Î¤Ï°¤¹¤ëʸ²½¤Ë...(ά)

''¤Þ¤È¤á''
-¥Æ¥¹¥È¶îÆ°³«È¯¤È¥Ó¥Ø¥¤¥Ó¥¢¶îÆ°³«È¯¤Ë¤ª¤±¤ë¹Í¤¨Êý¤Î°ã¤¤¤Ë¤Ä¤¤¤Æ¤Ï¤¢¤Þ¤ê¤Ë¤â´ÑǰŪ¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¦¤è¤¦¤Ë»×¤Ã¤¿¤¿¤á¡¢¤³¤ì°Ê¾å¿¼Äɤ¤¤Ï¤¤¤Ê¤¤¤³¤È¤Ë¤·¤¿¡£
-¤È¤ê¤¢¤¨¤º°Ê²¼¤¬Èæ³ÓŪʬ¤«¤ê¤ä¤¹¤¤Í×Ìó¡£
 Rspec ¤ÎÁÀ¤¤¤Ï¡Ö¥×¥í¥°¥é¥Þ¤Ë¥Æ¥¹¥È¥³¡¼¥É¤¬À߷פǤ¢¤ë¤³¤È¤òÌÀ³Î¤Ë °Õ¼±¤µ¤»¤ë¤³¤È¡×¤È¡¢¡Ö¥×¥í¥°¥é¥Þ¤¬¥Æ¥¹¥È¥³¡¼¥É¤ò¥¹¥à¡¼¥¹¤Ëµ­½Ò¤· ¼Â¹Ô¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¤³¤È¡×¤Ç¤¹¡£
 ¤½¤Î¤¿¤á¤Ë¡¢RSpec ¤Ï¿¶ÉñÄêµÁÍѤΠDSL ¤òÄ󶡤·¡¢ÍÍ¡¹¤Ê¥Æ¥¹¥È ´ØÏ¢¥é¥¤¥Ö¥é¥ê¤ä¼þÊեġ¼¥ë¤È¤ÎÏ¢·È¤òÀѶËŪ¤Ë¹Ô¤¤¡¢¡ÖÅý¹ç¥Æ¥¹ ¥Æ¥£¥ó¥°´Ä¶­¡×¤È¤Ê¤ë¤³¤È¤òÌܻؤ·¤Æ¤¤¤Þ¤¹¡£

**¤â¤¦°ìÅÙRspec¤È¤Ï [#t55f185f]
-Ruby¾å¤Ç¥Ó¥Ø¥¤¥Ó¥¢¶îÆ°³«È¯(Behavior Driven Development)¤ò¼Â¸½¤¹¤ë¤¿¤á¤Î¥Õ¥ì¡¼¥à¥ï¡¼¥¯
-¥×¥í¥°¥é¥à¥Õ¥¡¥¤¥ë¤È¤ÏÊ̤ˡ¢¤½¤ì¤Î¿¶Éñ¤òµ­½Ò¤¹¤ë¤¿¤á¤Îspec¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹¤ë¡£
-spec¥Õ¥¡¥¤¥ë¤Ï¥É¥á¥¤¥óÆò½¸À¸ì (Domain Specific Language:DSL) ¤ò»ÈÍѤ·¤Æµ­½Ò¤¹¤ë¡£

¤Á¤ç¤Ã¤ÈÂԤƥɥᥤ¥óÆò½¸À¸ì¤Ã¤Æ²¿¤À¡©
**¥É¥á¥¤¥óÆò½¸À¸ì¤È¤Ï¡© [#wa75fe50]
 ¥É¥á¥¤¥óÆò½¸À¸ì (Domain Specific Language:DSL) ¤È¤Ï¡¢ÆÃÄê¤ÎÌäÂêÎΰè (¥É¥á¥¤¥ó) ¤ò µ­½Ò¤¹¤ë¤¿¤á¤ËÀ߷פµ¤ì¤¿¡Ö¸À¸ì¡×¤Ç¤¹¡£RSpec ¤¬Æò½¤·¤Æ¤¤¤ë¥É¥á¥¤¥ó¤Ï¡Ö³«È¯ÂоݤΠ¥×¥í¥°¥é¥à¤Î¿¶Éñ¤òµ­½Ò¤¹¤ë¡×¤È¤¤¤¦Îΰè¤Ç¤¹¡£
--¤Ä¤Þ¤êÆÃÄê¤ÎÌäÂêÎΰè¤Î¤¿¤á¤ÎÀìÌç¤Î¸À¸ì

 RSpec ¤Ï¥×¥í¥°¥é¥à¤Î¿¶Éñ¤òµ­½Ò¤¹¤ë¸À¸ì¤È¤·¤Æ¡¢Ruby ¤ò³ÈÄ¥¤¹¤ë¤³¤È¤òÁª¤Ó¤Þ¤·¤¿¡£¤³¤Î¤è¤¦¤Ê¡¢DSL ¤òÄêµÁ¤¹¤ë¸À¸ì¤È DSL ¤ò¼Â¹Ô¤¹¤ë¸À¸ì (¥Û¥¹¥È¸À¸ì) ¤È¤¬Æ±¤¸¤Ç¤¢¤ë DSL ¤Î¼ÂÁõ¥¢¥×¥í¡¼¥Á¤ò¡Ö¸À¸ìÆâ (internal) DSL¡×¤È¸Æ¤Ó¤Þ¤¹¡£
 ¤Á¤Ê¤ß¤Ë¡¢DSL ¤Î¸À¸ì¤È¥Û¥¹¥È¸À¸ì¤È¤¬°Û¤Ê¤ë¤â¤Î¤ò¸À¸ì³° (external) DSL ¤È¸Æ¤Ó¤Þ¤¹¡£¸À¸ì³° DSL ¤ÎÎã¤È¤·¤Æ¤Ï¡¢Java ¤Ç¤è¤¯»È¤ï¤Æ¤¤¤ë¥Ó¥ë¥É¥Ä¡¼¥ë¤Î Ant ¤¬³ºÅö¤·¤Þ¤¹¡£Ant ¤Ï¡¢DSL ¤¬ XML ¤Ç¤¢¤ê¡¢¥Û¥¹¥È¸À¸ì¤¬ Java ¤Ç¤¢¤ë¸À¸ì³° DSL ¤È¹Í¤¨¤é¤ì¤Þ¤¹¡£

--Rspec¤Ï¿¶Éñ¤òµ­½Ò¤¹¤ë¤¿¤á¤Ëruby¤Î¸À¸ì¤ò³ÈÄ¥¤·¤ÆÆò½¤·¤¿¸À¸ìÆâDSL¡£
--Ant¤ÏJava¤È¤Ï°Û¤Ê¤ëxml¤Çµ­½Ò¤µ¤ì¤¿¸À¸ì³°DSL

-ÈæÓÈ
|java|±Ñ¸ì|
|ruby|ÆüËܸì|
|xml(ant)|¥Õ¥é¥ó¥¹¸ì|
|rspec|ÊÛ¸î»Î¤ÎÀìÌçÍѸì(ÆüËÜ)|

--java¤Èruby¤Èant¤Ï¤½¤ì¤¾¤ìÊ̤θÀÍդǤ¢¤ë¡£
--ruby¤Èrspec¤ÏÊ̤θÀÍդǤϤʤ¤¡£rspec¤Ïruby¤òÆÃÄê¤ÎÀìÌçÎΰè¤Ë¤Ä¤¤¤Æ¸úΨŪ¤Ëɽ¸½¤¹¤ë¤¿¤á¤Ë¡¢rubyÆâ¤Ç¤ÏÉáÃÊÍøÍѤ·¤Ê¤¤¸ì×äò»ÈÍѤ·¤Æ¤¤¤ë¡£


**·ëÏÀ [#n529f97b]
-Èó¾ï¤Ë´ÑǰŪ¤Ê¤È¤³¤í¤Ð¤«¤ê¤¬Àè¹Ô¤·¤Æ¤¤¤Æ¡¢¼ÂºÝ¾å¤Î¥á¥ê¥Ã¥È¤¬¤¢¤Þ¤ê¸«¤¨¤Æ¤³¤Ê¤¤¡£
-ÀѶËŪ¤Ë¤Î¤Ã¤«¤Æ¤¤¤³¤¦¤È¤Ï»×¤ï¤Ê¤¤¡£
-¤Þ¤¢ÊÙ¶¯²ñ¤Ï¤Þ¤À³¤±¤Þ¤¹¤±¤É¤Í¡£

¥È¥Ã¥×   ¿·µ¬ °ìÍ÷ ñ¸ì¸¡º÷ ºÇ½ª¹¹¿·   ¥Ø¥ë¥×   ºÇ½ª¹¹¿·¤ÎRSS

¥¢¡¼¥¯¥¦¥§¥Ö¤Î¥µ¡¼¥Ó¥¹¤ä¥½¥ê¥å¡¼¥·¥ç¥ó¤Ï¤³¤Á¤é