Debug gem conflict with rspec mocks
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Anfängerfreundlichkeit
- 45/100
Rechercherichtung
Start with lib/debug/source_repository.rb:38 and run the Ruby 3.3.7 reproduction from the issue with debug 1.11.0 and RSpec. Trace how the File.exist? call interacts with the configured mock. Done means the reproduction passes without mock expectation errors while preserving the source repository behavior.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Your environment
ruby -v: ruby 3.3.7rdbg -v: 1.11.0
Describe the bug
The debug gem's method in debug/source_repository.rb:38 calls File.exist?, which interferes with RSpec mocks that stub this method for specific file paths. This causes test failures with mock expectation errors when the debug gem is loaded during test execution.
To Reproduce
system('gem install bundler') unless Gem::Specification::find_all_by_name('bundler').any?
require 'bundler/inline'
gemfile(true) do
source 'https://rubygems.org'
gem 'rspec'
gem 'debug', '~> 1.11.0'
end
require 'rspec'
require 'debug'
class MyClass
def check_if_file_exist?(path)
File.exist?(path)
end
end
RSpec.describe "debug gem + File.exist? conflict" do
let(:target_path) { "config/session_store.yml" }
let(:my_class) { MyClass.new }
before do
allow(File).to receive(:exist?).with(target_path).and_return(true)
end
it "stubs File.exist? and avoids debug interference" do
result = my_class.check_if_file_exist?(target_path)
expect(result).to be true
end
end
RSpec::Core::Runner.run([])
Expected behavior
A clear and concise description of what you expected to happen.
- The test should pass
- Vorherrschende Sprache
- Ruby
- Sterne
- 1.3k
- Forks
- 146
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beitragsleitfaden
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus ruby/debug
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 68/100
-
Support exceptionOptions in setExceptionBreakpoints to catch arbitrary exception classes via DAP Offen
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 55/100
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 45/100
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 52/100
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 35/100
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
simp/pupmod-simp-simp#395 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 80/100
simp/pupmod-simp-rsyslog#219 ·
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 90/100
simp/pupmod-simp-pupmod#256 ·
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 90/100
simp/pupmod-simp-sudo#150 ·
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 90/100