CSC/ECE 517 Fall 2009/wiki1b team1: Difference between revisions
No edit summary |
|||
Line 117: | Line 117: | ||
---- | |||
Line 188: | Line 190: | ||
testing framework within Ruby's built in Test::Unit | testing framework within Ruby's built in Test::Unit | ||
BDD: Behavior Driven Development | ---- | ||
'''BDD: Behavior Driven Development''' [http://eggsonbread.com/2009/07/22/behavior-driven-development-in-a-nutshell/] | |||
Behavior driven development was born from the concepts behind the implementation of TDD. It brings together strands from | Behavior driven development was born from the concepts behind the implementation of TDD. It brings together strands from | ||
Line 197: | Line 200: | ||
approaches to software development more evident. Most test driven development testing frameworks such as RSpec and Cucumber also support behavior driven development testing. | approaches to software development more evident. Most test driven development testing frameworks such as RSpec and Cucumber also support behavior driven development testing. | ||
http://behaviour-driven.org/ | [http://behaviour-driven.org/] | ||
The link supports BDDs definition with additional links to more viable behavior driven development resources. | The link supports BDDs definition with additional links to more viable behavior driven development resources. | ||
Other | ---- | ||
'''Other Test Tool Resources''' | |||
Watir | Watir | ||
Watir is an open-source library for automating web browsers. It allows you to write tests that are easy to read and maintain. It | Watir is an open-source library for automating web browsers. It allows you to write tests that are easy to read and maintain. It | ||
Line 209: | Line 214: | ||
is simple and flexible. | is simple and flexible. | ||
http://wtr.rubyforge.org/ | [http://wtr.rubyforge.org/] | ||
NullDB - http://avdi.org/projects/nulldb/ | '''NullDB''' - http://avdi.org/projects/nulldb/ | ||
a way to speed up testing by avoiding database use. | a way to speed up testing by avoiding database use. | ||
Bleakhouse: memory leak detection | '''Bleakhouse:''' memory leak detection | ||
ruby-debug | '''ruby-debug''' | ||
Other than the extensive use of breakpoints, ruby-debug provides Rails with a plug-in extending the functionality of Rails built in debugger. | Other than the extensive use of breakpoints, ruby-debug provides Rails with a plug-in extending the functionality of Rails built in debugger. | ||
http://rubyforge.org/softwaremap/trove_list.php?form_cat=47 | '''http://rubyforge.org/softwaremap/trove_list.php?form_cat=47''' | ||
the link provides twenty debug resources | the link provides twenty debug resources | ||
//**************************************************************** | //**************************************************************** |
Revision as of 22:15, 20 September 2009
CSC/ECE 517 Fall 2009
Resources for Rails (other than IDEs)
IDEs are a valuable resource for Rails development, however there are many other resources and tools that can either replace or supplement IDEs.
Resources for Rails other than IDEs
Rails API - http://api.rubyonrails.org/
This site documents Rails files, classes and methods that can be used to build a Rails application.
Rails Forum - http://railsforum.com/
A discussion forum covering all aspects of Rails for beginners and experts including planning, programming, extensions and production.
Introducing Ruby on Rails
Part 1 http://www.softwaredeveloper.com/features/intro-to-ruby-on-rails-042507/
Part 2 http://www.softwaredeveloper.com/features/intro-to-ruby-on-rails-part-two-043007/
An excellent introduction to Rails for novices
Installers
Windows: InstantRails - http://instantrails.rubyforge.org/wiki/wiki.pl
An all in one, single click installer for Windows that includes a Rails server.
Mac: Locomotive - http://locomotive.raaum.org/
Rails Projects - http://www.workingwithrails.com/
A Database of Rails projects, programmers and websites
Rails plugins - http://agilewebdevelopment.com/
A collection of Rails open source plugins, searchable by category or keyword.
Sample Rails - http://snippets.dzone.com/tag/rails
A collection of Rails code snippets.
Agile Rails book - http://www.amazon.com/gp/product/097669400X/002-0481267-8083260?v=glance&n=283155
An excellent resource for learning how to apply Agile programming concepts to Rails.
Rails cheatsheet - http://www.blainekendall.com/uploads/RubyOnRails-Cheatsheet-BlaineKendall.pdf
One user's list of best practices, gotchas and quirks of developing with Rails.
Rails best practices - http://www.therailsway.com/
An official best practices list for programming in Rails.
Advanced Rails - http://webonrails.com/
A resource for the advanced Rails programmer.
Rails Blog - http://weblog.rubyonrails.org/
An online community of updates about current happenings with the Rails platform.
Rails Guides - http://guides.rubyonrails.org/
An all in one resource for learning Rails including Howtos, security and contributing to the Rails community.
Authoring Rails plugins - http://nubyonrails.com/articles/2006/05/04/the-complete-guide-to-rails-plugins-part-i
A complete guide to authoring your own Rails plugins.
Tools for Rails (other than IDEs)
Test Unit The Rails stack uses Test::Unit, known as the default Ruby unit testing framework shipping with Ruby. There are various plugins and extension that could be used with Rails built-in Test::Unit to extend its functionality for support of TDD and BDD testing practices.
[1] The link provides additional information in the form of supporting resources, whitepapers, examples, and plug-in documentation
Example
- http://wiki.rubyonrails.org/testing/test-unitrequire 'test/unit'
class CalculatorTest < Test::Unit::TestCase
def test_add_two_numbers_for_the_sum calculator = Calculator.new assert_equal 4, calculator.sum(2, 2) end
end
TDD: Test Driven Development
Test Driven Development is a combination of refactoring and test first development, a form of development where the test is
written prior to completed production code. The goal of TDD is the specification of requirements and not the validation of
requirements. There are a few testing frameworks that are used to implement the TDD programming technique.
[2] This link provides a comprehensive overview of test driven development practices and available resources for implementation.
RSpec
RSpec is a testing framework for Behavior Driven Development, complete with its own expectations, matchers and mocking and
stubbing facilities. It goes along hand in hand with Cucumber, though it plays nicely with many other testing frameworks as well.
Model Examples These are the equivalent of unit tests in Rails’ built in testing. Ironically (for the traditional TDD’er) these are the only specs that we feel should actually interact with the database. Learn more ….
Controller Examples These align somewhat with functional tests in rails, except that they do not actually render views (though you can force rendering of views if you prefer). Instead of setting expectations about what goes on a page, you set expectations about what templates get rendered. Learn more….
View Examples This is the other half of Rails’ functional testing. View specs allow you to set up assigns (thanks to ZenTest). Learn more ….
Helper Examples let you specify directly methods that live in your helpers. Learn more ….
[3]
The link provides a brief overview of RSpec with a comprehensive series of examples and a conceptual view of Rpecs step by step
implementation process
Cucumber
Cucumber is used with TDD and BDD within other testing frameworks such as RSpec by letting software development teams describe how
software should behave in plain text. The text is written in a business-readable domain-specific language and serves as
documentation, automated tests and development-aid - all rolled into one format.
[4] The link provides a detail decription, definition, and examples of Cucumber implementation best practices and supported
frameworks.
Cucumber Example: Scenario: See all vendors
Given I am logged in as a user in the administrator role And There are 3 vendors When I go to the manage vendors page Then I should see the first 3 vendor names
Shoulda
An extension to Test::Unit with additional helpers, macros, and assertions.
[5] The link provides a more conclusive definition of Shoulda along with installation facts and working examples of the Shoulda
testing framework within Ruby's built in Test::Unit
BDD: Behavior Driven Development [6] Behavior driven development was born from the concepts behind the implementation of TDD. It brings together strands from
TestDrivenDevelopment and DomainDrivenDesign into an integrated whole, making the relationship between these two powerful
approaches to software development more evident. Most test driven development testing frameworks such as RSpec and Cucumber also support behavior driven development testing.
[7] The link supports BDDs definition with additional links to more viable behavior driven development resources.
Other Test Tool Resources
Watir
Watir is an open-source library for automating web browsers. It allows you to write tests that are easy to read and maintain. It
is simple and flexible.
NullDB - http://avdi.org/projects/nulldb/
a way to speed up testing by avoiding database use.
Bleakhouse: memory leak detection
ruby-debug Other than the extensive use of breakpoints, ruby-debug provides Rails with a plug-in extending the functionality of Rails built in debugger.
http://rubyforge.org/softwaremap/trove_list.php?form_cat=47 the link provides twenty debug resources //****************************************************************