mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Add validation to subclass in tests to avoid polluting parent class
These two tests currently both define acceptance validators on the same class, Topic. This means that in either one test or the other, there are not one but *two* instances of the LazilyDefineAttributes module builder in the class' ancestors, which can result in unpredictable results. Subclassing Topic in each test avoids conflicts.
This commit is contained in:
parent
cc6bff3daa
commit
42a8340aa8
1 changed files with 7 additions and 5 deletions
|
@ -145,15 +145,17 @@ class ValidationsTest < ActiveRecord::TestCase
|
|||
end
|
||||
|
||||
def test_validates_acceptance_of_with_undefined_attribute_methods
|
||||
Topic.validates_acceptance_of(:approved)
|
||||
topic = Topic.new(approved: true)
|
||||
Topic.undefine_attribute_methods
|
||||
klass = Class.new(Topic)
|
||||
klass.validates_acceptance_of(:approved)
|
||||
topic = klass.new(approved: true)
|
||||
klass.undefine_attribute_methods
|
||||
assert topic.approved
|
||||
end
|
||||
|
||||
def test_validates_acceptance_of_as_database_column
|
||||
Topic.validates_acceptance_of(:approved)
|
||||
topic = Topic.create("approved" => true)
|
||||
klass = Class.new(Topic)
|
||||
klass.validates_acceptance_of(:approved)
|
||||
topic = klass.create("approved" => true)
|
||||
assert topic["approved"]
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in a new issue