RSpec

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    3 Favorites

    RSpec - Presentation Transcript

    1. RSpec
    2. Freelancer • http://simplabs.com • http://xing.com/profile/Marco_OtteWitte • http://github.com/marcoow
    3. Buzzwords TDD
    4. Buzzwords X TDD
    5. Buzzwords XTDD BDD
    6. BDD
    7. BDD Beschreiben von Verhalten
    8. BDD Beschreiben von Verhalten mit natürlicher Sprache bzw. Domänen- Sprache
    9. BDD Beschreiben von Verhalten mit natürlicher Sprache bzw. Domänen- Sprache Spezifikation und (Regressions)- Tests in einem
    10. 1 class TaskTest < ActiveSupport::TestCase 2 3 test 'Test::Unit is rocking' do 4 assert Test::Unit.rocking? 5 end 6 7 end
    11. 1 describe RSpec do 2 3 it 'should be rocking' do 4 RSpec.should be_rocking 5 end 6 7 end
    12. Syntactic Sugar RSpec.should be_rocking => RSpec.rocking?
    13. Basics 1 describe Something do 2 3 before do 4 @thing = Something.new 5 end 6 7 it 'should behave in some way' do 8 @thing.action.should == 'expected' 9 end 10 11 after(:all) do 12 Something.destroy_all 13 end 14 15 end
    14. Model Specs 1 describe Task do 2 3 describe 'validation' do 4 5 before do 6 @task = Task.new(:title => 'test task') 7 end 8 9 it 'should succeed when all attributres are set' do 10 @task.should be_valid 11 end 12 13 end 14 15 end
    15. Controller Specs 1 describe TasksController do 2 3 describe 'handling GET /tasks' do 4 5 it \"should render the 'tasks/index' template\" do 6 get :index 7 8 response.should render_template('tasks/index') 9 end 10 12 end 13 14 end
    16. View Specs 1 describe 'tasks/index' do 2 3 before do 4 @task = stub_model(Task) 5 assigns[:tasks] = [@task] 6 end 7 8 it 'should render a link to tasks/new' do 9 render('tasks/index') 10 11 response.should have_tag('a[href=?]', new_task_path) 12 end 13 14 end
    17. Demo
    18. Shared Examples (1) 1 describe 'a secure action', :shared => true do 2 3 describe 'without a logged-in user' do 4 5 it 'should redirect to new_session_path' do 6 do_request 7 8 response.should redirect_to(new_session_path) 9 end 10 11 end 12 13 end
    19. Shared Examples (2) 1 describe TasksController do 2 3 describe 'handling GET /tasks' do 4 5 it_should_behave_like 'a secure action' 6 7 # => redirect without logged-in user 8 9 end 10 11 end
    20. Demo
    21. Matchers 1 class RequireAttributeMatcher 2 3 def initialize(attribute) 4 @attribute = attribute 5 end 6 7 def matches?(model) 8 @model = model 9 model.send(\"#{@attribute.to_s}=\".to_sym, nil) 10 return !model.valid? 11 end 12 13 end
    22. Demo
    23. Stories (Cucumber) Given [Context] When [Aktion] Then [Business Value!]
    24. Stories (Cucumber) Scenario: Create Task Given that there are no tasks When I create task \"task 1\" When I go to the tasks page Then I should see \"task 1\"
    25. Stories (Cucumber) 1 Given /^that there are no tasks$/ do 2 Task.destroy_all 3 end 4 5 When /^I create task \"(.*)\"$/ do |title| 6 post tasks_url, :task => { :title => title } 7 end 8 9 When /^I go to the tasks page$/ do 10 get tasks_url 11 end 12 13 Then /^I should see \"(.*)\"$/ do |title| 14 response.body.should =~ /#{title}/m 15 end
    26. Demo
    27. Installation ruby script/plugin install git://github.com/ dchelimsky/rspec.git ruby script/plugin install git://github.com/ dchelimsky/rspec-rails.git ruby script/generate rspec
    28. Autotest sudo gem install ZenTest RSPEC=true autotest RSPEC=true AUTOFEATURE=true autotest
    29. Demo
    30. Report [spec/rspec.opts] --format html:doc/spec/report.html
    31. Q&A
    32. Ressourcen • http://rspec.simplabs.com • http://rspec.info/ • http://github.com/dchelimsky/rspec • http://github.com/dchelimsky/rspec-rails • http://github.com/aslakhellesoy/cucumber • http://dannorth.net/introducing-bdd
    SlideShare Zeitgeist 2009

    + Marco Otte-WitteMarco Otte-Witte Nominate

    custom

    877 views, 3 favs, 1 embeds more stats

    overview of RSpec

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 877
      • 863 on SlideShare
      • 14 from embeds
    • Comments 0
    • Favorites 3
    • Downloads 12
    Most viewed embeds
    • 14 views on http://log.simplabs.com

    more

    All embeds
    • 14 views on http://log.simplabs.com

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories