- ¥Ð¥Ã¥¯¥¢¥Ã¥×°ìÍ÷
- ¥½¡¼¥¹ ¤òɽ¼¨
- Ruby on Rails/Âè13²óÊÙ¶¯²ñ - Rspec¤ò»È¤Ã¤Æ¤ß¤ë ¤Ïºï½ü¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
Ruby on Rails/Âè13²óÊÙ¶¯²ñ - Rspec¤ò»È¤Ã¤Æ¤ß¤ë?
¤³¤Î¥Ú¡¼¥¸¤Ï¡© †
²¼µ¤Î¥Í¥¿¤ò¸µ¤Ë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¤Î¼ÂºÝ¤Î»È¤¤Êý¤Ë¤Ä¤¤¤ÆÊÙ¶¯¤·¤Þ¤¹¡£
- Âè°ì²ó¤Ï¤³¤Á¤é
Ruby on Rails/Âè12²óÊÙ¶¯²ñ - Rspec³µÍ×?
Ìܼ¡ †
Æü»þ †
- 2007/10/19(¶â)
»²²Ã¼Ô †
Æ°²è †
ËÜÊÔ †
¥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ¤ß¤ë †
http://jp.rubyist.net/magazine/?0021-Rspec#l18
- ¥¤¥ó¥¹¥È¡¼¥ë
$ su # gem install rspec Bulk updating Gem source index for: http://gems.rubyforge.org Successfully installed rspec-1.0.8 Installing ri documentation for rspec-1.0.8... Installing RDoc documentation for rspec-1.0.8...
- ¤Á¤ã¤ó¤È¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤¿¤«¥Á¥§¥Ã¥¯
$spec -v RSpec-1.0.8 (r2338) - BDD for Ruby http://rspec.rubyforge.org/
¤Á¤ã¤ó¤È¥¤¥ó¥¹¥È¡¼¥ë¤Ç¤¤¿¡£
¤È¤ê¤¢¤¨¤º»È¤Ã¤Æ¤ß¤ë †
http://jp.rubyist.net/magazine/?0021-Rspec#l19
- ¾åµ¥Ú¡¼¥¸¤Ç¥µ¥ó¥×¥ë¤È¤·¤Æ¤¢¤ëArray¥¯¥é¥¹¤Ø¤Î¿¶Éñ¤Îµ½Ò¤ò¤·¤Æ¤ß¤ë¡£
$emacs test/rspec/array_spec.rb
¤Ç°Ê²¼¤òŽ¤êÉÕ¤±describe Array, "when empty" do before do @empty_array = [] end it "should be empty" do @empty_array.should be_empty end it "should size 0" do @empty_array.size.should == 0 end after do @empty_array = nil end end
- ¤Ç¼Â¹Ô
$ spec array_spec.rb .. Finished in 0.047857 seconds 2 examples, 0 failures
¤¦¡¼¤ó¡¢¥µ¥ó¥×¥ëÄ̤ꡣ
- ¿§¤ò¤Ä¤±¤ë
$ spec -c test/rspec/array_spec.rb
- »ÅÍͽñ¤Ã¤Ý¤¯½ÐÎϤ¹¤ë
$ spec -fs test/rspec/array_spec.rb Array when empty - should be empty - should size 0 Finished in 0.007583 seconds 2 examples, 0 failures
µ½Ò¥ë¡¼¥ë¤Ë¤Ä¤¤¤Æ †
http://jp.rubyist.net/magazine/?0021-Rspec#l26
- ¥µ¥ó¥×¥ë¤ò·ÇºÜ
¹½Â¤ †
Rspec¤Î¹½À®Í×ÁÇ | µ½ÒÎã | testUnit¤ÇÂбþ¤¹¤ë¤â¤Î |
spec¥Õ¥¡¥¤¥ë | array_rspec.rb | Test¥Õ¥¡¥¤¥ë |
Behavior | describe Array, "when empty" do end | test¥¯¥é¥¹ |
Example | it "should be empty" do end | test¥±¡¼¥¹ |
Expectation | @empty_array.should be_empty | assertʸ |
- 1 ¤Ä¤Î¥¯¥é¥¹ (¥â¥¸¥å¡¼¥ë) ¤ËÂФ·¤Æɬ¤º 1 ¤Ä¤Î¥¹¥Ú¥Ã¥¯¥Õ¥¡¥¤¥ë¤È¤¤¤¦¥ë¡¼¥ë¤Ï¤Ê¤¤
- spec(1)-(n)Behavior(1)-(n)Example(1)-(n)Expectation
Behavior †
- ¿¶Éñ
- Test::Unit ¤Ë¤ª¤±¤ë¥Õ¥£¥¯¥¹¥Á¥ã (¥Æ¥¹¥È¥¯¥é¥¹) ¤ËÁêÅö¤¹¤ë
- Ê£¿ô¤ÎExample¤ò´Þ¤à
- °Ê²¼¤Î¤è¤¦¤Ê½ñ¼°
describe Array "when empty" do #Array¥¯¥é¥¹¤¬empty¤Î¤È¤¤Î¿¶Éñ .. end
Example †
- ¼Â¹Ô²Äǽ¤Ê¥µ¥ó¥×¥ë
- Test::Unit ¤Ë¤ª¤±¤ë¥Æ¥¹¥È¥á¥½¥Ã¥É¤ËÁêÅö¤¹¤ë
- Ê£¿ô¤ÎExpectation¤ò´Þ¤à
- °Ê²¼¤Î¤è¤¦¤Ê½ñ¼°
it "should be empty" do #¶õ¤Ç¤¢¤ë¤³¤È ... end
- test¤Îset_up¡¢tera_down¤ËÁêÅö¤¹¤ëbefore / after ¤È¤¤¤¦¥á¥½¥Ã¥É¤¬¤¢¤ë¡£
before do end after do end
- before(:all),after(:all)¤È¤¤¤¦¤â¤Î¤â¤¢¤ë¡£¤³¤ì¤ÏExample¤Î¤¿¤Ó¤Ë¤Ç¤Ï¤Ê¤¯¡¢Behaviour¤ò¼Â¹Ô¤¹¤ëºÇ½é¤Î°ì²ó¤Î¤ß¼Â¹Ô¤µ¤ì¤ë¡£
Expectation †
- ¥×¥í¥°¥é¥à¤Ë´üÂÔ¤¹¤ëÆ°ºî¤äÆ°ºî·ë²Ì
- Test::Unit ¤Ë¤ª¤±¤ëassertʸ¤ËÁêÅö¤¹¤ë
- °Ê²¼¤Î¤è¤¦¤Ê½ñ¼°
result.should == 37 #·ë²Ì¤Ï37¤È¤Ê¤ë
¢°ìÈ̲½actual.should matcher(expected)
- matcher¤ÎÉôʬ¤Ë¤Ï°Ê²¼¤Î¤è¤¦¤Ê¤â¤Î¤ò»È¤¦¤³¤È¤¬¤Ç¤¤ë
- ¥Þ¥Ã¥Á¥ã
¥Þ¥Ã¥Á¥ã̾ ÆâÍÆ ±é»»»Ò¤Î¥Þ¥Ã¥Á¥ã < <= == === =~ >= ±é»»»Ò°Ê³°¤Î¥Ó¥ë¥È¥¤¥ó¤Î¥Þ¥Ã¥Á¥ã be_close(expected, delta) ¤Û¡¼¤²¤Û¤² change eql(expected) equal(expected) have(number).items have_at_least(number).items have_at_most(number).items have_exactly include(expected) actual ¤¬ String ¤« Array ¤Ç¤¢¤ë¾ì¹ç¤Ë¡¢actual.include?(expected) ¤ò´üÂÔ¤·¤Þ¤¹ match(regexp) actial =~ regexp ¤Ç¤¢¤ë¤³¤È¤ò´üÂÔ¤·¤Þ¤¹ raise_error(expected) respond_to(*names) satisfy{} throw_symbol(:expected=nil) ¤Û¤²¥Þ¥Ã¥Á¥ã be_xxx should be_empty,be_instance_of,be_kind_ofl¤Ê¤É¡£(be_a_kind_of¤Ê¤É´§»ì¤ò¤Ä¤±¤ë¤³¤È¤â¤Ç¤¤ë) be_true be_false have_xxx ¥æ¡¼¥¶¡¼ÄêµÁ¤Î¥Þ¥Ã¥Á¥ã
Æüì¤ÊExpectation †
- vilolated
violated "always fail!" # ɬ¤º¼Â¹Ô¤Ë¼ºÇÔ¤¹¤ë
- pending
pending("for obvious reason") do true.should be_false # ÊÝα¤·¤¿¤¤É¾²Á(̤¼ÂÁõ¤Ê¤É) end