Sha256: f0d71847c1c3dee592a13931342a460615a94795051ed53c7f93f9391a321393

Contents?: true

Size: 1.78 KB

Versions: 12

Compression:

Stored size: 1.78 KB

Contents

Feature: Hide Defined Constant

  Use `hide_const` to remove a constant for the duration of a test.

  Scenario: Hide top-level constant
    Given a file named "hide_const_spec.rb" with:
      """ruby
      FOO = 7

      RSpec.describe "hiding FOO" do
        it "can hide FOO" do
          hide_const("FOO")
          expect { FOO }.to raise_error(NameError)
        end

        it "restores the hidden constant when the example completes" do
          expect(FOO).to eq(7)
        end
      end
      """
    When I run `rspec hide_const_spec.rb`
    Then the examples should all pass

  Scenario: Hide nested constant
    Given a file named "hide_const_spec.rb" with:
      """ruby
      module MyGem
        class SomeClass
          FOO = 7
        end
      end

      module MyGem
        RSpec.describe SomeClass do
          it "hides the nested constant when it is fully qualified" do
            hide_const("MyGem::SomeClass::FOO")
            expect { SomeClass::FOO }.to raise_error(NameError)
          end

          it "restores the hidden constant when the example completes" do
            expect(MyGem::SomeClass::FOO).to eq(7)
          end
        end
      end
      """
    When I run `rspec hide_const_spec.rb`
    Then the examples should all pass

  Scenario: Hiding undefined constant
    Given a file named "hide_const_spec.rb" with:
      """ruby
      RSpec.describe "hiding UNDEFINED_CONSTANT" do
        it "has no effect" do
          hide_const("UNDEFINED_CONSTANT")
          expect { UNDEFINED_CONSTANT }.to raise_error(NameError)
        end

        it "is still undefined after the example completes" do
          expect { UNDEFINED_CONSTANT }.to raise_error(NameError)
        end
      end
      """
    When I run `rspec hide_const_spec.rb`
    Then the examples should all pass

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
opal-rspec-1.1.0.alpha3 rspec-mocks/upstream/features/mutating_constants/hide_defined_constant.feature
opal-rspec-1.1.0.alpha2 rspec-mocks/upstream/features/mutating_constants/hide_defined_constant.feature
opal-rspec-1.1.0.alpha1 rspec-mocks/upstream/features/mutating_constants/hide_defined_constant.feature
opal-rspec-1.0.0 rspec-mocks/upstream/features/mutating_constants/hide_defined_constant.feature
opal-rspec-1.0.0.alpha1 rspec-mocks/upstream/features/mutating_constants/hide_defined_constant.feature
opal-rspec-0.8.0 rspec-mocks/upstream/features/mutating_constants/hide_defined_constant.feature
opal-rspec-0.8.0.alpha3 rspec-mocks/upstream/features/mutating_constants/hide_defined_constant.feature
opal-rspec-0.8.0.alpha2 rspec-mocks/upstream/features/mutating_constants/hide_defined_constant.feature
opal-rspec-0.8.0.alpha1 rspec-mocks/upstream/features/mutating_constants/hide_defined_constant.feature
opal-rspec-0.7.1 rspec-mocks/upstream/features/mutating_constants/hide_defined_constant.feature
opal-rspec-0.7.0 rspec-mocks/upstream/features/mutating_constants/hide_defined_constant.feature
opal-rspec-0.7.0.rc.2 rspec-mocks/upstream/features/mutating_constants/hide_defined_constant.feature