shoulda-matchers 3.0.0.rc1 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (106) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +2 -3
  3. data/Gemfile.lock +12 -41
  4. data/NEWS.md +118 -26
  5. data/README.md +34 -11
  6. data/doc_config/yard/templates/default/fulldoc/html/css/bootstrap.css +0 -0
  7. data/doc_config/yard/templates/default/fulldoc/html/css/style.css +4 -0
  8. data/gemfiles/4.0.0.gemfile +2 -3
  9. data/gemfiles/4.0.0.gemfile.lock +47 -77
  10. data/gemfiles/4.0.1.gemfile +2 -3
  11. data/gemfiles/4.0.1.gemfile.lock +51 -79
  12. data/gemfiles/4.1.gemfile +2 -3
  13. data/gemfiles/4.1.gemfile.lock +73 -103
  14. data/gemfiles/4.2.gemfile +2 -3
  15. data/gemfiles/4.2.gemfile.lock +90 -124
  16. data/lib/shoulda/matchers.rb +1 -0
  17. data/lib/shoulda/matchers/action_controller/callback_matcher.rb +6 -8
  18. data/lib/shoulda/matchers/action_controller/filter_param_matcher.rb +1 -3
  19. data/lib/shoulda/matchers/action_controller/flash_store.rb +1 -8
  20. data/lib/shoulda/matchers/action_controller/permit_matcher.rb +140 -88
  21. data/lib/shoulda/matchers/action_controller/redirect_to_matcher.rb +2 -5
  22. data/lib/shoulda/matchers/action_controller/render_template_matcher.rb +5 -10
  23. data/lib/shoulda/matchers/action_controller/render_with_layout_matcher.rb +2 -4
  24. data/lib/shoulda/matchers/action_controller/rescue_from_matcher.rb +1 -3
  25. data/lib/shoulda/matchers/action_controller/respond_with_matcher.rb +3 -5
  26. data/lib/shoulda/matchers/action_controller/route_matcher.rb +5 -7
  27. data/lib/shoulda/matchers/action_controller/set_flash_matcher.rb +35 -9
  28. data/lib/shoulda/matchers/action_controller/set_session_matcher.rb +3 -3
  29. data/lib/shoulda/matchers/active_model.rb +57 -1
  30. data/lib/shoulda/matchers/active_model/allow_mass_assignment_of_matcher.rb +2 -5
  31. data/lib/shoulda/matchers/active_model/allow_value_matcher.rb +162 -54
  32. data/lib/shoulda/matchers/active_model/disallow_value_matcher.rb +5 -2
  33. data/lib/shoulda/matchers/active_model/have_secure_password_matcher.rb +1 -3
  34. data/lib/shoulda/matchers/active_model/numericality_matchers/comparison_matcher.rb +24 -11
  35. data/lib/shoulda/matchers/active_model/numericality_matchers/even_number_matcher.rb +4 -3
  36. data/lib/shoulda/matchers/active_model/numericality_matchers/numeric_type_matcher.rb +0 -2
  37. data/lib/shoulda/matchers/active_model/numericality_matchers/odd_number_matcher.rb +4 -3
  38. data/lib/shoulda/matchers/active_model/numericality_matchers/only_integer_matcher.rb +2 -1
  39. data/lib/shoulda/matchers/active_model/validate_absence_of_matcher.rb +15 -13
  40. data/lib/shoulda/matchers/active_model/validate_acceptance_of_matcher.rb +3 -3
  41. data/lib/shoulda/matchers/active_model/validate_confirmation_of_matcher.rb +3 -3
  42. data/lib/shoulda/matchers/active_model/validate_exclusion_of_matcher.rb +4 -4
  43. data/lib/shoulda/matchers/active_model/validate_inclusion_of_matcher.rb +8 -8
  44. data/lib/shoulda/matchers/active_model/validate_length_of_matcher.rb +8 -8
  45. data/lib/shoulda/matchers/active_model/validate_numericality_of_matcher.rb +12 -14
  46. data/lib/shoulda/matchers/active_model/validate_presence_of_matcher.rb +10 -4
  47. data/lib/shoulda/matchers/active_model/validation_matcher.rb +0 -3
  48. data/lib/shoulda/matchers/active_model/validator.rb +0 -8
  49. data/lib/shoulda/matchers/active_record/accept_nested_attributes_for_matcher.rb +4 -6
  50. data/lib/shoulda/matchers/active_record/association_matcher.rb +58 -43
  51. data/lib/shoulda/matchers/active_record/define_enum_for_matcher.rb +2 -2
  52. data/lib/shoulda/matchers/active_record/have_db_column_matcher.rb +3 -5
  53. data/lib/shoulda/matchers/active_record/have_db_index_matcher.rb +3 -5
  54. data/lib/shoulda/matchers/active_record/have_readonly_attribute_matcher.rb +1 -4
  55. data/lib/shoulda/matchers/active_record/serialize_matcher.rb +3 -5
  56. data/lib/shoulda/matchers/active_record/validate_uniqueness_of_matcher.rb +7 -7
  57. data/lib/shoulda/matchers/doublespeak/double.rb +10 -1
  58. data/lib/shoulda/matchers/doublespeak/double_collection.rb +13 -5
  59. data/lib/shoulda/matchers/doublespeak/method_call.rb +10 -1
  60. data/lib/shoulda/matchers/doublespeak/object_double.rb +2 -1
  61. data/lib/shoulda/matchers/doublespeak/world.rb +10 -0
  62. data/lib/shoulda/matchers/error.rb +4 -0
  63. data/lib/shoulda/matchers/independent/delegate_method_matcher.rb +11 -10
  64. data/lib/shoulda/matchers/integrations/libraries.rb +1 -0
  65. data/lib/shoulda/matchers/integrations/libraries/action_controller.rb +1 -1
  66. data/lib/shoulda/matchers/integrations/libraries/active_model.rb +1 -1
  67. data/lib/shoulda/matchers/integrations/libraries/active_record.rb +1 -1
  68. data/lib/shoulda/matchers/integrations/libraries/rails.rb +2 -1
  69. data/lib/shoulda/matchers/integrations/libraries/routing.rb +27 -0
  70. data/lib/shoulda/matchers/integrations/test_frameworks/active_support_test_case.rb +1 -1
  71. data/lib/shoulda/matchers/integrations/test_frameworks/minitest_4.rb +1 -1
  72. data/lib/shoulda/matchers/integrations/test_frameworks/minitest_5.rb +1 -1
  73. data/lib/shoulda/matchers/integrations/test_frameworks/missing_test_framework.rb +1 -1
  74. data/lib/shoulda/matchers/integrations/test_frameworks/rspec.rb +2 -2
  75. data/lib/shoulda/matchers/integrations/test_frameworks/test_unit.rb +1 -1
  76. data/lib/shoulda/matchers/routing.rb +10 -0
  77. data/lib/shoulda/matchers/version.rb +1 -1
  78. data/script/SUPPORTED_VERSIONS +1 -1
  79. data/spec/acceptance/independent_matchers_spec.rb +103 -42
  80. data/spec/doublespeak_spec_helper.rb +5 -1
  81. data/spec/support/acceptance/adds_shoulda_matchers_to_project.rb +34 -11
  82. data/spec/support/acceptance/helpers/rspec_helpers.rb +9 -13
  83. data/spec/support/acceptance/helpers/step_helpers.rb +13 -0
  84. data/spec/support/acceptance/matchers/have_output.rb +1 -1
  85. data/spec/support/acceptance/matchers/indicate_number_of_tests_was_run_matcher.rb +1 -1
  86. data/spec/support/tests/command_runner.rb +5 -1
  87. data/spec/support/unit/helpers/active_record_versions.rb +0 -4
  88. data/spec/support/unit/shared_examples/set_session_or_flash.rb +8 -3
  89. data/spec/unit/shoulda/matchers/action_controller/permit_matcher_spec.rb +198 -39
  90. data/spec/unit/shoulda/matchers/action_controller/route_matcher_spec.rb +269 -102
  91. data/spec/unit/shoulda/matchers/action_controller/set_flash_matcher_spec.rb +24 -0
  92. data/spec/unit/shoulda/matchers/active_model/allow_value_matcher_spec.rb +118 -101
  93. data/spec/unit/shoulda/matchers/active_model/disallow_value_matcher_spec.rb +0 -82
  94. data/spec/unit/shoulda/matchers/active_model/numericality_matchers/comparison_matcher_spec.rb +148 -121
  95. data/spec/unit/shoulda/matchers/active_model/validate_acceptance_of_matcher_spec.rb +20 -8
  96. data/spec/unit/shoulda/matchers/active_model/validate_numericality_of_matcher_spec.rb +64 -183
  97. data/spec/unit/shoulda/matchers/active_model/validate_presence_of_matcher_spec.rb +14 -0
  98. data/spec/unit/shoulda/matchers/doublespeak/double_collection_spec.rb +60 -0
  99. data/spec/unit/shoulda/matchers/doublespeak/double_spec.rb +23 -7
  100. data/spec/unit/shoulda/matchers/routing/route_matcher_spec.rb +242 -0
  101. data/spec/unit_spec_helper.rb +4 -0
  102. data/tasks/documentation.rb +35 -0
  103. metadata +9 -8
  104. data/Guardfile +0 -5
  105. data/cucumber.yml +0 -1
  106. data/lib/shoulda/matchers/active_model/validator_with_captured_range_error.rb +0 -12
@@ -31,15 +31,18 @@ module Shoulda
31
31
  self
32
32
  end
33
33
 
34
+ def ignoring_interference_by_writer
35
+ @allow_matcher.ignoring_interference_by_writer
36
+ self
37
+ end
38
+
34
39
  def failure_message
35
40
  @allow_matcher.failure_message_when_negated
36
41
  end
37
- alias failure_message_for_should failure_message
38
42
 
39
43
  def failure_message_when_negated
40
44
  @allow_matcher.failure_message
41
45
  end
42
- alias failure_message_for_should_not failure_message_when_negated
43
46
 
44
47
  def strict
45
48
  @allow_matcher.strict
@@ -19,7 +19,7 @@ module Shoulda
19
19
  # it { should have_secure_password }
20
20
  # end
21
21
  #
22
- # # Test::Unit
22
+ # # Minitest (Shoulda)
23
23
  # class UserTest < ActiveSupport::TestCase
24
24
  # should have_secure_password
25
25
  # end
@@ -34,8 +34,6 @@ module Shoulda
34
34
  class HaveSecurePasswordMatcher
35
35
  attr_reader :failure_message
36
36
 
37
- alias failure_message_for_should failure_message
38
-
39
37
  CORRECT_PASSWORD = "aBcDe12345"
40
38
  INCORRECT_PASSWORD = "password"
41
39
 
@@ -24,33 +24,42 @@ module Shoulda
24
24
  @strict = false
25
25
  end
26
26
 
27
+ def description
28
+ message = "validate that #{@attribute} is #{comparison_expectation} #{@value}"
29
+
30
+ if @strict
31
+ message << " strictly"
32
+ end
33
+
34
+ message
35
+ end
36
+
27
37
  def for(attribute)
28
38
  @attribute = attribute
29
39
  self
30
40
  end
31
41
 
32
- def matches?(subject)
33
- @subject = subject
34
- all_bounds_correct?
35
- end
36
-
37
42
  def with_message(message)
38
43
  @message = message
44
+ self
39
45
  end
40
46
 
41
- def comparison_description
42
- "#{expectation} #{@value}"
47
+ def matches?(subject)
48
+ @subject = subject
49
+ all_bounds_correct?
43
50
  end
44
51
 
45
52
  def failure_message
46
53
  last_failing_submatcher.failure_message
47
54
  end
48
- alias failure_message_for_should failure_message
49
55
 
50
56
  def failure_message_when_negated
51
57
  last_failing_submatcher.failure_message_when_negated
52
58
  end
53
- alias failure_message_for_should_not failure_message_when_negated
59
+
60
+ def comparison_description
61
+ "#{comparison_expectation} #{@value}"
62
+ end
54
63
 
55
64
  private
56
65
 
@@ -71,7 +80,11 @@ module Shoulda
71
80
  def submatchers
72
81
  @_submatchers ||=
73
82
  comparison_combos.map do |diff, submatcher_method_name|
74
- matcher = __send__(submatcher_method_name, @value + diff, nil)
83
+ matcher = __send__(
84
+ submatcher_method_name,
85
+ (@value + diff).to_s,
86
+ nil
87
+ )
75
88
  matcher.with_message(@message, values: { count: @value })
76
89
  matcher
77
90
  end
@@ -118,7 +131,7 @@ module Shoulda
118
131
  [-diff, 0, diff]
119
132
  end
120
133
 
121
- def expectation
134
+ def comparison_expectation
122
135
  case @operator
123
136
  when :> then "greater than"
124
137
  when :>= then "greater than or equal to"
@@ -8,9 +8,10 @@ module Shoulda
8
8
 
9
9
  def initialize(attribute, options = {})
10
10
  @attribute = attribute
11
- @disallow_value_matcher = DisallowValueMatcher.new(NON_EVEN_NUMBER_VALUE).
12
- for(@attribute).
13
- with_message(:even)
11
+ @disallow_value_matcher =
12
+ DisallowValueMatcher.new(NON_EVEN_NUMBER_VALUE.to_s).
13
+ for(@attribute).
14
+ with_message(:even)
14
15
  end
15
16
 
16
17
  def allowed_type
@@ -38,12 +38,10 @@ module Shoulda
38
38
  def failure_message
39
39
  @disallow_value_matcher.failure_message
40
40
  end
41
- alias failure_message_for_should failure_message
42
41
 
43
42
  def failure_message_when_negated
44
43
  @disallow_value_matcher.failure_message_when_negated
45
44
  end
46
- alias failure_message_for_should_not failure_message_when_negated
47
45
  end
48
46
  end
49
47
  end
@@ -8,9 +8,10 @@ module Shoulda
8
8
 
9
9
  def initialize(attribute, options = {})
10
10
  @attribute = attribute
11
- @disallow_value_matcher = DisallowValueMatcher.new(NON_ODD_NUMBER_VALUE).
12
- for(@attribute).
13
- with_message(:odd)
11
+ @disallow_value_matcher =
12
+ DisallowValueMatcher.new(NON_ODD_NUMBER_VALUE.to_s).
13
+ for(@attribute).
14
+ with_message(:odd)
14
15
  end
15
16
 
16
17
  def allowed_type
@@ -7,7 +7,8 @@ module Shoulda
7
7
  NON_INTEGER_VALUE = 0.1
8
8
  def initialize(attribute)
9
9
  @attribute = attribute
10
- @disallow_value_matcher = DisallowValueMatcher.new(NON_INTEGER_VALUE).
10
+ @disallow_value_matcher =
11
+ DisallowValueMatcher.new(NON_INTEGER_VALUE.to_s).
11
12
  for(attribute).
12
13
  with_message(:not_an_integer)
13
14
  end
@@ -16,7 +16,7 @@ module Shoulda
16
16
  # it { should validate_absence_of(:arms) }
17
17
  # end
18
18
  #
19
- # # Test::Unit
19
+ # # Minitest (Shoulda)
20
20
  # class ArtilleryTest < ActiveSupport::TestCase
21
21
  # should validate_absence_of(:arms)
22
22
  # end
@@ -39,7 +39,7 @@ module Shoulda
39
39
  # it { should validate_absence_of(:arms).on(:create) }
40
40
  # end
41
41
  #
42
- # # Test::Unit
42
+ # # Minitest (Shoulda)
43
43
  # class ArtilleryTest < ActiveSupport::TestCase
44
44
  # should validate_absence_of(:arms).on(:create)
45
45
  # end
@@ -64,7 +64,7 @@ module Shoulda
64
64
  # end
65
65
  # end
66
66
  #
67
- # # Test::Unit
67
+ # # Minitest (Shoulda)
68
68
  # class ArtilleryTest < ActiveSupport::TestCase
69
69
  # should validate_absence_of(:arms).
70
70
  # with_message("We're fresh outta arms here, soldier!")
@@ -86,6 +86,7 @@ module Shoulda
86
86
  def matches?(subject)
87
87
  super(subject)
88
88
  @expected_message ||= :present
89
+
89
90
  disallows_value_of(value, @expected_message)
90
91
  end
91
92
 
@@ -103,21 +104,22 @@ module Shoulda
103
104
  else
104
105
  obj
105
106
  end
106
- elsif [Fixnum, Float].include?(attribute_class)
107
- 1
108
- elsif attribute_class == BigDecimal
109
- BigDecimal.new(1, 0)
110
- elsif !attribute_class || attribute_class == String
111
- 'an arbitrary value'
112
107
  else
113
- attribute_class.new
108
+ case column_type
109
+ when :integer, :float then 1
110
+ when :decimal then BigDecimal.new(1, 0)
111
+ when :datetime, :time, :timestamp then Time.now
112
+ when :date then Date.new
113
+ when :binary then "0"
114
+ else 'an arbitrary value'
115
+ end
114
116
  end
115
117
  end
116
118
 
117
- def attribute_class
119
+ def column_type
118
120
  @subject.class.respond_to?(:columns_hash) &&
119
- @subject.class.columns_hash[@attribute.to_s].respond_to?(:klass) &&
120
- @subject.class.columns_hash[@attribute.to_s].klass
121
+ @subject.class.columns_hash[@attribute.to_s].respond_to?(:type) &&
122
+ @subject.class.columns_hash[@attribute.to_s].type
121
123
  end
122
124
 
123
125
  def collection?
@@ -16,7 +16,7 @@ module Shoulda
16
16
  # it { should validate_acceptance_of(:eula) }
17
17
  # end
18
18
  #
19
- # # Test::Unit
19
+ # # Minitest (Shoulda)
20
20
  # class RegistrationTest < ActiveSupport::TestCase
21
21
  # should validate_acceptance_of(:eula)
22
22
  # end
@@ -42,7 +42,7 @@ module Shoulda
42
42
  # end
43
43
  # end
44
44
  #
45
- # # Test::Unit
45
+ # # Minitest (Shoulda)
46
46
  # class RegistrationTest < ActiveSupport::TestCase
47
47
  # should validate_acceptance_of(:terms_of_service).on(:create)
48
48
  # end
@@ -67,7 +67,7 @@ module Shoulda
67
67
  # end
68
68
  # end
69
69
  #
70
- # # Test::Unit
70
+ # # Minitest (Shoulda)
71
71
  # class RegistrationTest < ActiveSupport::TestCase
72
72
  # should validate_acceptance_of(:terms_of_service).
73
73
  # with_message('You must accept the terms of service')
@@ -16,7 +16,7 @@ module Shoulda
16
16
  # it { should validate_confirmation_of(:email) }
17
17
  # end
18
18
  #
19
- # # Test::Unit
19
+ # # Minitest (Shoulda)
20
20
  # class UserTest < ActiveSupport::TestCase
21
21
  # should validate_confirmation_of(:email)
22
22
  # end
@@ -39,7 +39,7 @@ module Shoulda
39
39
  # it { should validate_confirmation_of(:password).on(:create) }
40
40
  # end
41
41
  #
42
- # # Test::Unit
42
+ # # Minitest (Shoulda)
43
43
  # class UserTest < ActiveSupport::TestCase
44
44
  # should validate_confirmation_of(:password).on(:create)
45
45
  # end
@@ -64,7 +64,7 @@ module Shoulda
64
64
  # end
65
65
  # end
66
66
  #
67
- # # Test::Unit
67
+ # # Minitest (Shoulda)
68
68
  # class UserTest < ActiveSupport::TestCase
69
69
  # should validate_confirmation_of(:password).
70
70
  # with_message('Please re-enter your password')
@@ -23,7 +23,7 @@ module Shoulda
23
23
  # end
24
24
  # end
25
25
  #
26
- # # Test::Unit
26
+ # # Minitest (Shoulda)
27
27
  # class GameTest < ActiveSupport::TestCase
28
28
  # should validate_exclusion_of(:supported_os).
29
29
  # in_array(['Mac', 'Linux'])
@@ -46,7 +46,7 @@ module Shoulda
46
46
  # end
47
47
  # end
48
48
  #
49
- # # Test::Unit
49
+ # # Minitest (Shoulda)
50
50
  # class GameTest < ActiveSupport::TestCase
51
51
  # should validate_exclusion_of(:floors_with_enemies).
52
52
  # in_range(5..8)
@@ -76,7 +76,7 @@ module Shoulda
76
76
  # end
77
77
  # end
78
78
  #
79
- # # Test::Unit
79
+ # # Minitest (Shoulda)
80
80
  # class GameTest < ActiveSupport::TestCase
81
81
  # should validate_exclusion_of(:weapon).
82
82
  # in_array(['pistol', 'paintball gun', 'stick']).
@@ -105,7 +105,7 @@ module Shoulda
105
105
  # end
106
106
  # end
107
107
  #
108
- # # Test::Unit
108
+ # # Minitest (Shoulda)
109
109
  # class GameTest < ActiveSupport::TestCase
110
110
  # should validate_exclusion_of(:weapon).
111
111
  # in_array(['pistol', 'paintball gun', 'stick']).
@@ -24,7 +24,7 @@ module Shoulda
24
24
  # end
25
25
  # end
26
26
  #
27
- # # Test::Unit
27
+ # # Minitest (Shoulda)
28
28
  # class IssueTest < ActiveSupport::TestCase
29
29
  # should validate_inclusion_of(:state).
30
30
  # in_array(%w(open resolved unresolved))
@@ -44,7 +44,7 @@ module Shoulda
44
44
  # it { should validate_inclusion_of(:state).in_range(1..5) }
45
45
  # end
46
46
  #
47
- # # Test::Unit
47
+ # # Minitest (Shoulda)
48
48
  # class IssueTest < ActiveSupport::TestCase
49
49
  # should validate_inclusion_of(:state).in_range(1..5)
50
50
  # end
@@ -87,7 +87,7 @@ module Shoulda
87
87
  # end
88
88
  # end
89
89
  #
90
- # # Test::Unit
90
+ # # Minitest (Shoulda)
91
91
  # class IssueTest < ActiveSupport::TestCase
92
92
  # should validate_inclusion_of(:severity).
93
93
  # in_array(%w(low medium high)).
@@ -116,7 +116,7 @@ module Shoulda
116
116
  # end
117
117
  # end
118
118
  #
119
- # # Test::Unit
119
+ # # Minitest (Shoulda)
120
120
  # class IssueTest < ActiveSupport::TestCase
121
121
  # should validate_inclusion_of(:severity).
122
122
  # in_array(%w(low medium high)).
@@ -152,7 +152,7 @@ module Shoulda
152
152
  # end
153
153
  # end
154
154
  #
155
- # # Test::Unit
155
+ # # Minitest (Shoulda)
156
156
  # class PersonTest < ActiveSupport::TestCase
157
157
  # should validate_inclusion_of(:age).
158
158
  # in_range(0..65).
@@ -188,7 +188,7 @@ module Shoulda
188
188
  # end
189
189
  # end
190
190
  #
191
- # # Test::Unit
191
+ # # Minitest (Shoulda)
192
192
  # class PersonTest < ActiveSupport::TestCase
193
193
  # should validate_inclusion_of(:age).
194
194
  # in_range(0..21).
@@ -218,7 +218,7 @@ module Shoulda
218
218
  # end
219
219
  # end
220
220
  #
221
- # # Test::Unit
221
+ # # Minitest (Shoulda)
222
222
  # class IssueTest < ActiveSupport::TestCase
223
223
  # should validate_inclusion_of(:state).
224
224
  # in_array(%w(open resolved unresolved)).
@@ -248,7 +248,7 @@ module Shoulda
248
248
  # end
249
249
  # end
250
250
  #
251
- # # Test::Unit
251
+ # # Minitest (Shoulda)
252
252
  # class IssueTest < ActiveSupport::TestCase
253
253
  # should validate_inclusion_of(:state).
254
254
  # in_array(%w(open resolved unresolved)).
@@ -25,7 +25,7 @@ module Shoulda
25
25
  # end
26
26
  # end
27
27
  #
28
- # # Test::Unit
28
+ # # Minitest (Shoulda)
29
29
  # class UserTest < ActiveSupport::TestCase
30
30
  # should validate_length_of(:password).
31
31
  # is_at_least(10).
@@ -51,7 +51,7 @@ module Shoulda
51
51
  # it { should validate_length_of(:bio).is_at_least(15) }
52
52
  # end
53
53
  #
54
- # # Test::Unit
54
+ # # Minitest (Shoulda)
55
55
  #
56
56
  # class UserTest < ActiveSupport::TestCase
57
57
  # should validate_length_of(:bio).is_at_least(15)
@@ -75,7 +75,7 @@ module Shoulda
75
75
  # it { should validate_length_of(:status_update).is_at_most(140) }
76
76
  # end
77
77
  #
78
- # # Test::Unit
78
+ # # Minitest (Shoulda)
79
79
  # class UserTest < ActiveSupport::TestCase
80
80
  # should validate_length_of(:status_update).is_at_most(140)
81
81
  # end
@@ -98,7 +98,7 @@ module Shoulda
98
98
  # it { should validate_length_of(:favorite_superhero).is_equal_to(6) }
99
99
  # end
100
100
  #
101
- # # Test::Unit
101
+ # # Minitest (Shoulda)
102
102
  # class UserTest < ActiveSupport::TestCase
103
103
  # should validate_length_of(:favorite_superhero).is_equal_to(6)
104
104
  # end
@@ -123,7 +123,7 @@ module Shoulda
123
123
  # end
124
124
  # end
125
125
  #
126
- # # Test::Unit
126
+ # # Minitest (Shoulda)
127
127
  # class UserTest < ActiveSupport::TestCase
128
128
  # should validate_length_of(:password).
129
129
  # is_at_least(5).is_at_most(30)
@@ -151,7 +151,7 @@ module Shoulda
151
151
  # end
152
152
  # end
153
153
  #
154
- # # Test::Unit
154
+ # # Minitest (Shoulda)
155
155
  # class UserTest < ActiveSupport::TestCase
156
156
  # should validate_length_of(:password).
157
157
  # is_at_least(10).
@@ -180,7 +180,7 @@ module Shoulda
180
180
  # end
181
181
  # end
182
182
  #
183
- # # Test::Unit
183
+ # # Minitest (Shoulda)
184
184
  # class UserTest < ActiveSupport::TestCase
185
185
  # should validate_length_of(:secret_key).
186
186
  # is_at_least(15).
@@ -209,7 +209,7 @@ module Shoulda
209
209
  # end
210
210
  # end
211
211
  #
212
- # # Test::Unit
212
+ # # Minitest (Shoulda)
213
213
  # class UserTest < ActiveSupport::TestCase
214
214
  # should validate_length_of(:secret_key).
215
215
  # is_at_most(100).