Slide 1

Slide 1 text

minitest vs rspec willnet (Shinichi Maeshima)

Slide 2

Slide 2 text

ϑϦʔϥϯεΤϯδχΞ @netwillnet

Slide 3

Slide 3 text

ginza.rb http://www.flickr.com/photos/cromdia/2336796541/

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

ruby1.9 ͔Βඪ४ఴ෇ Rails4 ͔Βඪ४ςετϑϨʔϜϫʔΫ

Slide 6

Slide 6 text

require "minitest/autorun" class Person def hello; 'hello' end end class TestPerson < Minitest::Test def setup @person = Person.new end def test_hello assert_equal "hello", @person.hello end end likes test-unit

Slide 7

Slide 7 text

likes RSpec require "minitest/autorun" class Person def hello; 'hello' end end describe Person do before do @person = Person.new end it 'should say hello' do @person.hello.must_equal 'hello' end end

Slide 8

Slide 8 text

RSpec ͱ minitest ͬͯԿ͕ҧ͏ͷʁ

Slide 9

Slide 9 text

RSpec → શ෦ೖΓ minitest → ࠷খݶ

Slide 10

Slide 10 text

RSpec → શ෦ೖΓ minitest → ࠷খݶ Rails Sinatra Padrino

Slide 11

Slide 11 text

capybara_minitest_spec minispec-metadata minitest-ansi minitest-around minitest-capistrano minitest-capybara minitest-chef-handler minitest-ci minitest-colorize minitest-context minitest-debugger minitest-display minitest-emoji minitest-english minitest-excludes minitest-firemock minitest-great_expectations minitest-growl minitest-implicit-subject minitest-instrument minitest-instrument-db minitest-libnotify minitest-macruby minitest-matchers minitest-metadata minitest-mongoid minitest-must_not minitest-nc minitest-predicates minitest-rails minitest-rails-capybara minitest-reporters minitest-should_syntax minitest-shouldify minitest-spec-context minitest-spec-expect minitest-spec-magic minitest-spec-rails minitest-stub-const minitest-tags minitest-wscolor minitest_owrapper minitest_should minitest_tu_shim mongoid-minitest pry-rescue assay-minitest detroit-minitest em-minitest-spec flexmock-minitest guard-minitest guard-minitest-decisiv minitest-activemodel minitest-ar-assertions minitest-capybara-unit minitest-colorer minitest-deluxe minitest-extra-assertions minitest-rails-shoulda minitest-spec minitest-spec-should minitest-sugar minitest_should mongoid-minitest spork-minitest minitest extensions

Slide 12

Slide 12 text

class MyMatcher def initialize(text) @text = text end def matches? subject subject =~ /^#{@text}.*/ end def failure_message_for_should "expected to start with #{@text}" end def failure_message_for_should_not "expected not to start with #{@text}" end end MiniTest::Unit::TestCase.register_matcher MyMatcher, :start_with describe 'something' do it 'must start with...' do page = 'my reply' page.must_start_with 'my reply' end end minitest-matchers

Slide 13

Slide 13 text

describe '౤ߘϖʔδʹભҠ͍ͯ͠Δͱ͖' do before { visit posts_path } it '"౤ߘ͢Δ"ϘλϯΛԡͨ͠Β"౤ߘ͠·ͨ͠"ͱදࣔ͞Ε͍ͯΔ͜ͱ' do click_button '౤ߘ͢Δ' page.text.must_include '౤ߘ͠·ͨ͠' end it '"࡟আ͢Δ"ϘλϯΛԡͨ͠Β confirm ͕දࣔ͞Ε͍ͯΔ͜ͱ', js: true do click_button '࡟আ͢Δ' page.driver.confirm_messages.wont_be_empty end end minitest-metadata

Slide 14

Slide 14 text

minitest-rails adds rails support • model, controller, view • helper • routing • mailer

Slide 15

Slide 15 text

͍ΖΜͳ gem Λ૊Έ߹ΘͤΔ ͜ͱͰɺRSpec ʹ͍ۙ ػೳʹͰ͖Δ http://www.flickr.com/photos/songo/4714093882/

Slide 16

Slide 16 text

͕ͩ υΩϡϝϯτ͕ গͳ͍

Slide 17

Slide 17 text

•RSpec ͷه๏͕ݏ͍ or ϒϥοΫϘοΫ εײ͕ؾ࣋ͪѱ͍ •ΧελϚΠζ޷͖ͳਓ •minitest ͷίʔυΛಡΉͷ͕ۤͰ͸ͳ͍ or minitest ʹৄ͍͠ਓ͕ۙ͘ʹ͍Δ ͜͏͍͏ਓʹΦεεϝ

Slide 18

Slide 18 text

•RSpec Λطʹ࢖͍ͬͯͯ׳Ε͍ͯΔ •ϑϨʔϜϫʔΫଆͰશ෦΍ͬͯཉ͍͠೿ •ςετͱ͔Α͘Θ͔Γ·ͤΜʼʻ ͜͏͍͏ਓʹ͸ Φεεϝ͠ͳ͍

Slide 19

Slide 19 text

※2013೥6݄2೔ݱࡏͷঢ়گ͔Βࢉग़͞Ε͍ͯ·͢ɻ ൒೥ޙ΍̍೥ޙʹ͸ঢ়گ͕มΘ͍ͬͯΔՄೳੑ͕ߴ͍ Ͱ͢

Slide 20

Slide 20 text

ςετϥΠϒϥϦΛ ݡ͘࢖ͬͯ ָ͍͠ςετϥΠϑ Λʂ