Skip to content

Commit 285d4c8

Browse files
justinkoskipkayhil
andcommitted
Document TestFixtures#fixture
Fixes rails#52000 Co-Authored-By: Hartley McGuire <[email protected]>
1 parent 7dbe817 commit 285d4c8

File tree

2 files changed

+11
-4
lines changed

2 files changed

+11
-4
lines changed

activerecord/lib/active_record/test_fixtures.rb

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,14 @@ def uses_transaction?(method)
9696
end
9797
end
9898

99+
# Generic fixture accessor for fixture names that may conflict with other methods.
100+
#
101+
# assert_equal "Ruby on Rails", web_sites(:rubyonrails).name
102+
# assert_equal "Ruby on Rails", fixture(:web_sites, :rubyonrails).name
103+
def fixture(fixture_set_name, *fixture_names)
104+
active_record_fixture(fixture_set_name, *fixture_names)
105+
end
106+
99107
private
100108
def run_in_transaction?
101109
use_transactional_tests &&
@@ -255,7 +263,7 @@ def load_instances?
255263

256264
def method_missing(method, ...)
257265
if fixture_sets.key?(method.name)
258-
_active_record_fixture(method, ...)
266+
active_record_fixture(method, ...)
259267
else
260268
super
261269
end
@@ -269,14 +277,13 @@ def respond_to_missing?(method, include_private = false)
269277
end
270278
end
271279

272-
def _active_record_fixture(fixture_set_name, *fixture_names)
280+
def active_record_fixture(fixture_set_name, *fixture_names)
273281
if fs_name = fixture_sets[fixture_set_name.name]
274282
access_fixture(fs_name, *fixture_names)
275283
else
276284
raise StandardError, "No fixture set named '#{fixture_set_name.inspect}'"
277285
end
278286
end
279-
alias_method :fixture, :_active_record_fixture
280287

281288
def access_fixture(fs_name, *fixture_names)
282289
force_reload = fixture_names.pop if fixture_names.last == true || fixture_names.last == :reload

activerecord/test/cases/fixtures_test.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -611,7 +611,7 @@ def test_fixtures
611611
def test_fixture_method_and_private_alias
612612
assert_equal "The First Topic", topics(:first).title
613613
assert_equal "The First Topic", fixture(:topics, :first).title
614-
assert_equal "The First Topic", _active_record_fixture(:topics, :first).title
614+
assert_equal "The First Topic", active_record_fixture(:topics, :first).title
615615
end
616616

617617
def test_fixture_method_does_not_clash_with_a_test_case_method

0 commit comments

Comments
 (0)