public
Description: Simplifying tests!
Homepage: http://www.nomedojogo.com/category/remarkable/
Clone URL: git://github.com/carlosbrando/remarkable.git
Click here to lend your support to: remarkable and make a donation at www.pledgie.com !
carlosbrando (author)
Thu Oct 29 13:32:03 -0700 2009
commit  e80ffb556c934f9806623898ad59684f1e8ee53d
tree    a3f090e58720b3b73ecee0ffdada76a74796b73e
parent  0ed320c910719926d007e04e811fabc16933085b
remarkable / README
100644 133 lines (81 sloc) 4.322 kb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
= Remarkable
 
You can read this file nicely formatted at the Rubyforge project page:
 
  http://remarkable.rubyforge.org/
 
== Description
 
Remarkable is a framework for rspec matchers that supports macros and I18n. It's
constituted of three pieces:
 
* Remarkable: the framework with helpers, DSL, I18n and rspec features;
 
* Remarkable ActiveRecord: a collection of matchers for ActiveRecord. It
  supports all ActiveRecord validations, associations and some extra matchers.
 
* Remarkable Rails: a collection of matchers for ActionController. It also
  includes MacroStubs, which is a clean DSL for stubbing your controller methods.
 
In each folder above, you can find a README more detailed description of each piece.
 
== Why use Remarkable for Rails?
 
* The only one with matchers for all ActiveRecord validations, with support to
  all options (except :on and the option :with in validates_format_of);
 
* Matchers for all ActiveRecord associations. The only one which supports all
  these options:
 
    :through, :source, :source_type, :class_name, :foreign_key, :dependent,
    :join_table, :uniq, :readonly, :validate, :autosave, :counter_cache, :polymorphic
 
  Plus SQL options:
 
    :select, :conditions, :include, :group, :having, :order, :limit, :offset
 
  Besides in Remarkable 3.0 matchers became much smarter. Whenever :join_table
  or :through is given as option, it checks if the given table exists. Whenever
  :foreign_key or :counter_cache is given, it checks if the given column exists;
 
* ActionController matchers:
 
    :assign_to, :filter_params, :redirect_to, :render_with_layout, :respond_with,
    :render_template, :route, :set_session and :set_the_flash;
 
* Macro stubs: make your controllers specs easier to main, more readable and DRY;
 
* Tests and more tests. We have a huge tests suite ready to run and tested in
  Rails 2.1.2, 2.2.2 and 2.3.2;
 
* I18n and great documentation.
 
* It has your style. You can choose between:
 
    1) it { should validate_numericality_of(:age).greater_than(18).only_integer }
 
    2) it { should validate_numericality_of(:age, :greater_than => 18, :only_integer => true) }
 
    3) should_validate_numericality_of :age, :greater_than => 18, :only_integer => true
 
    4) should_validate_numericality_of :age do |m|
         m.only_integer
         m.greater_than 18
         # Or: m.greater_than = 18
       end
 
Remarkable Rails requires rspec >= 1.2.0 and rspec-rails >= 1.2.0.
 
== Install on Rails
 
Install the gem:
 
  sudo gem install remarkable_rails
 
This will install remarkable, remarkable_activerecord and remarkable_rails gems.
 
Inside Rails you need to require just this gem. If you are using ActiveRecord,
it will automatically require the remarkable_activerecord gem.
 
== Rails 2.3
 
In Rails 2.3, in order to rspec load properly, you have to use this configuration
on your config/environments/test.rb
 
  config.gem "rspec", :lib => false
  config.gem "rspec-rails", :lib => false
  config.gem "remarkable_rails", :lib => false
 
And then require remarkable inside your spec_helper.rb, after "spec/rails":
 
  require 'spec/rails'
  require 'remarkable_rails'
 
This is the safest way to avoid conflicts.
 
Users who are upgrading to Remarkable 3.0, should not find any problem if their
tests are running without deprecation warnings.
 
== Developers
 
If you are developing matchers, for example hpricot matchers, you need to install
only the remarkable "core" gem:
 
  sudo gem install remarkable
 
If you stumble into any problem or have doubts while building your matchers,
please drop us a line. We are currently searching for people who wants to join
us and provide matchers for Datamapper, Sequel, Sinatra and all other possible
options. :)
 
== Browse the documentation
 
Remarkable:
  http://remarkable.rubyforge.org/core/
 
Remarkable ActiveRecord:
  http://remarkable.rubyforge.org/activerecord/
  http://remarkable.rubyforge.org/activerecord/classes/Remarkable/ActiveRecord/Matchers.html
 
Remarkable Rails:
  http://remarkable.rubyforge.org/rails/
  http://remarkable.rubyforge.org/rails/classes/Remarkable/ActionController/Matchers.html
 
== More information
 
Google group: http://groups.google.com/group/remarkable-core
Bug tracking: http://github.com/carlosbrando/remarkable/issues
 
== LICENSE
 
All projects are under MIT LICENSE.