ããã¼Webãµã¼ããä½ãã©ã¤ãã©ãªãwwããªãªã¼ã¹ãã¾ãã
è¿é ã¯WebAPIã使ã£ãã¢ããªã±ã¼ã·ã§ã³ãä½ããã¨ãå¢ãã¦ããã¨æãã¾ãããèªååãã¹ãããã®WebAPIã¸ã®ã¢ã¯ã»ã¹ã¯ã©ããã£ã¦ã¾ãã?
ç§ã¯ãèªåã§stubãããFakeWeb(ã¬ã·ãå
è¼©ã«æãã£ã!!)ã使ã£ãããã¦ããã§ãããã¤ãã¤ããã£ããããªãé¨åãããã¾ãããã§ãSinatraãªãã§ä½ã£ã¦ããã§ããããããgemã«ã¾ã¨ãã¾ããã®ã§ããããããã°ãå©ç¨ãã ããã
æ¦è¦
ww(Double Web)ã¯ããããDouble(mock, stub, spyãªã©)ã®æ©è½ãåããããã¼Webãµã¼ããç°¡åã«ä½ãããã®ãã¬ã¼ã ã¯ã¼ã¯(ç¬)ã§ããç¾ç¶ã§ã¯ã以ä¸ã®ãããªãã¨ãåºæ¥ã¾ãã
- ä»ã®APIãµã¼ãã使ãå ´åãªã©ã«ãç°¡åã«ããã¼ãµã¼ããä½ã
- ãã®ããã¼ãµã¼ãã¯èªååãã¹ããªãããèµ·å忢ã§ãã
- Stub(åºå®ã®ã¬ã¹ãã³ã¹ãè¿ããããªã¢ã¯ã·ã§ã³)ãå®ç¾©ã§ãããã¿ããªå¤§å¥½ãSinatraã§æ¸ãã¾ãã
- ãã®ãªã¯ã¨ã¹ããããã¦ããã¦ããã¹ãä¸ããæ¤è¨¼ã§ãã¾ãããã®ãã©ã¡ã¼ã¿ã§ãããã¨ãã¨ãã(Spy)
- Mockãå®ç¾©ã§ãããäºå®ãããã¡ã½ããããã¹ãä¸ã§å¼ã°ããªãå ´åãä¾å¤ãçºçãããããã
ä½¿ãæ¹
大ãã2éãã®ä½¿ãæ¹ãåºæ¥ã¾ãã
ä¸ã¤ã¯èªååãã¹ãä¸ããèµ·å忢ãããæ¹æ³ã
å®éã«éãã¦åããã¦ãããã¹ãã http://github.com/moro/ww/blob/master/spec/ww/server_integration_spec.rb ã«ããã®ã§ã覧ãã ããã
ãã¨ãã°ãè¤éãªãã©ã¡ã¼ã¿ãå¤é¨APIã«æãããããªå ´åã«ãã©ããªãªã¯ã¨ã¹ããé£ãã ããæ¤è¨¼ã§ããããã«ãªãã¾ãã
ããä¸ã¤ã¯ããããããå¥ãµã¼ãã¨ãã¦èµ·åãã¦ããæ¹æ³ã§ãããã®å ´åã¯ããã®ããã¼ãµã¼ãã®/spyã«ã¢ã¯ã»ã¹ããã¨ãSpyã§æºãã¦ããã¢ã¯ã·ã§ã³ã¸ã®ãªã¯ã¨ã¹ããç®è¦ã§ç¢ºèªã§ãã¾ãã
æ¤è¨¼ç¨éã¨ãã¦ã¯ãã¾ãå½¹ç«ã¡ã¾ããããæ¸ãã¦ã¯æ¶ããã§ä½ã£ã¦ããéã«ç®è¦ç¢ºèªãããå ´åããã客æ§ã¸ãã¢ããã¨ãã®è¡¨ç¤ºç¨ã«ã¯å½¹ç«ã¤ããããªãã§ããããã
åºåã¤ã¡ã¼ã¸ã¯ http://github.com/moro/ww/raw/master/example/spy_eye_output.html ã«ããã¾ã(GitHubãtext/plainã§è¿ãã¾ãã®ã§ãä¿åãããã¨ã«ãã©ã¦ã¶ã§éãã¦ã¿ã¦ãã ãã)ã
ã¨ãããã¨ã§ãç¾ç¶ã¯ããããä¸è¨äºã¤ã®ç¨éã§ä½¿ããããã«ãªãã¾ããã試ãã«ããã¾åç»ãã¦ããããã¸ã§ã¯ãã®ãã¹ãã³ã¼ãããã¢ç¨ããã¼ãµã¼ãããwwã使ãããã«æ¸ãæããã¨ãããã¡ããã¨åãã¦ãã¾ãã
ãã°å ±åããè¦æãããã°Twitterãããã§@moroã§è©±ãããã¦ãã ããã