Skip to content

Commit 3fc95e1

Browse files
authored
Merge pull request rails#48065 from nvasilevski/disallow-assertionless-tests-in-active-model
Disallow assertionless tests in Active Model
2 parents fdad62b + 2342f39 commit 3fc95e1

File tree

2 files changed

+16
-2
lines changed

2 files changed

+16
-2
lines changed

activemodel/test/cases/attribute_test.rb

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -145,10 +145,16 @@ def serialize_cast_value(value)
145145
end
146146

147147
test "duping does not eagerly type cast if we have not yet type cast" do
148-
@type.define_singleton_method(:deserialize) { flunk }
149-
attribute = Attribute.from_database(nil, "a value", @type)
148+
deserialize_called = false
149+
deserialize_called_with = nil
150+
@type.define_singleton_method(:deserialize) do |value|
151+
deserialize_called_with = value
152+
deserialize_called = true
153+
end
154+
attribute = Attribute.from_database(nil, "my_attribute_value", @type)
150155

151156
attribute.dup
157+
assert_not deserialize_called, "deserialize should not have been called, but was called with #{deserialize_called_with}"
152158
end
153159

154160
class MyType

activemodel/test/cases/helper.rb

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,14 @@
1616
class ActiveModel::TestCase < ActiveSupport::TestCase
1717
include ActiveSupport::Testing::MethodCallAssertions
1818

19+
class AssertionlessTest < StandardError; end
20+
21+
def after_teardown
22+
super
23+
24+
raise AssertionlessTest, "No assertions made." if passed? && assertions.zero?
25+
end
26+
1927
private
2028
# Skips the current run on JRuby using Minitest::Assertions#skip
2129
def jruby_skip(message = "")

0 commit comments

Comments
 (0)