puppet-selinux icon indicating copy to clipboard operation
puppet-selinux copied to clipboard

Review RSpec/BeforeAfterAll: Beware of using before/after(:all) rubocop warning

Open vinzent opened this issue 8 years ago • 2 comments

new error with rubocop-rspec 1.12:

spec/acceptance/selinux_permissive_spec.rb:9:5: C: RSpec/BeforeAfterAll: Beware of using before/after(:all) as it may cause state to leak between tests. If you are using rspec-rails, and use_transactional_fixtures is enabled, then records created in before(:all) are not rolled back. 
    after :all do
    ^^^^^^^^^

comment on IRC:

the spec's not well-structured.. it has multiple "it" blocks (examples) that rely on the state set by a previous example, e.g. one example calls result.exit_code, the next runs a check, then after(:all) resets the system state.

probably best to move the shell() checks into the same it {} block that actually runs the test, or have the test re-run in each it {} block (rather unnecessary)

vinzent avatar Feb 22 '17 12:02 vinzent

I suppose the specs could use a look-over, but the purpose of the before/after all blocks is to set up some state in the system for the module to act on, and then clean it up after the set of tests is done.

oranenj avatar May 04 '17 19:05 oranenj