File tree 4 files changed +65
-3
lines changed 4 files changed +65
-3
lines changed Original file line number Diff line number Diff line change @@ -6,6 +6,7 @@ gem 'rails'
6
6
group :development do
7
7
gem 'rspec-rails'
8
8
gem 'sqlite3'
9
+ gem 'annotate-models'
9
10
end
10
11
11
12
group :test do
Original file line number Diff line number Diff line change 28
28
activemodel (= 3.0.7 )
29
29
activesupport (= 3.0.7 )
30
30
activesupport (3.0.7 )
31
+ annotate-models (1.0.4 )
31
32
arel (2.0.9 )
32
33
builder (2.1.2 )
33
34
diff-lcs (1.1.2 )
@@ -89,6 +90,7 @@ PLATFORMS
89
90
x86-mingw32
90
91
91
92
DEPENDENCIES
93
+ annotate-models
92
94
rails
93
95
rspec
94
96
rspec-rails
Original file line number Diff line number Diff line change 1
- class User < ActiveRecord ::Base
2
- end
1
+ # == Schema Information
2
+ # Schema version: 20110424142757
3
+ #
4
+ # Table name: users
5
+ #
6
+ # id :integer not null, primary key
7
+ # name :string(255)
8
+ # email :string(255)
9
+ # created_at :datetime
10
+ # updated_at :datetime
11
+ #
12
+
13
+ class User < ActiveRecord ::Base
14
+ attr_accessible :name , :email
15
+
16
+ validates :name , :presence => true ,
17
+ :length => { :maximum => 50 }
18
+ validates :email , :presence => true ,
19
+ :format => { :with => email_regex }
20
+
21
+ email_regex = /\A [\w +\- .]+@[a-z\d \- .]+\. [a-z]+\z /i
22
+ end
Original file line number Diff line number Diff line change 1
1
require 'spec_helper'
2
2
3
3
describe User do
4
- pending "add some examples to (or delete) #{ __FILE__ } "
4
+
5
+ before ( :each ) do
6
+ @attr = { :name => "Example User" , :email => "user@example.com" }
7
+ end
8
+
9
+ it "should create a new instance given valid attributes" do
10
+ User . create! ( @attr )
11
+ end
12
+
13
+ #Test for no blank email address
14
+ it "should require an email address" do
15
+ no_email_user = User . new ( @attr . merge ( :email => "" ) )
16
+ no_email_user . should_not be_valid
17
+ end
18
+
19
+
20
+ #Test for maximum length
21
+ it "should reject names that are too long" do
22
+ long_name = "a" * 51
23
+ long_name_user = User . new ( @attr . merge ( :name => long_name ) )
24
+ long_name_user . should_not be_valid
25
+ end
26
+
27
+ #Test for proper email
28
+ it "should accept valid email addresses" do
29
+ addresses = %w[ user@foo.com THE_USER@foo.bar.org first.last@foo.jp ]
30
+ addresses . each do |address |
31
+ valid_email_user = User . new ( @attr . merge ( :email => address ) )
32
+ valid_email_user . should be_valid
33
+ end
34
+ end
35
+
36
+ it "should reject invalid email addresses" do
37
+ addresses = %w[ user@foo,com user_at_foo.org example.user@foo. ]
38
+ addresses . each do |address |
39
+ invalid_email_user = User . new ( @attr . merge ( :email => address ) )
40
+ invalid_email_user . should_not be_valid
41
+ end
42
+ end
43
+
5
44
end
You can’t perform that action at this time.
0 commit comments