README.md in rubocop-rspec-1.25.1 vs README.md in rubocop-rspec-1.26.0

- old
+ new

@@ -1,17 +1,16 @@ # RuboCop RSpec [![Join the chat at https://gitter.im/rubocop-rspec/Lobby](https://badges.gitter.im/rubocop-rspec/Lobby.svg)](https://gitter.im/rubocop-rspec/Lobby) [![Gem Version](https://badge.fury.io/rb/rubocop-rspec.svg)](https://rubygems.org/gems/rubocop-rspec) -[![CircleCI](https://circleci.com/gh/rubocop-rspec/rubocop-rspec.svg?style=svg)](https://circleci.com/gh/rubocop-rspec/rubocop-rspec) -[![Test Coverage](https://api.codeclimate.com/v1/badges/f6254deb61671e357f30/test_coverage)](https://codeclimate.com/github/rubocop-rspec/rubocop-rspec/test_coverage) -[![Maintainability](https://api.codeclimate.com/v1/badges/f6254deb61671e357f30/maintainability)](https://codeclimate.com/github/rubocop-rspec/rubocop-rspec/maintainability) +[![CircleCI](https://circleci.com/gh/rubocop-hq/rubocop-rspec.svg?style=svg)](https://circleci.com/gh/rubocop-hq/rubocop-rspec) +[![Test Coverage](https://api.codeclimate.com/v1/badges/8ffaabf633c968c22bdd/test_coverage)](https://codeclimate.com/github/rubocop-hq/rubocop-rspec/test_coverage) +[![Maintainability](https://api.codeclimate.com/v1/badges/8ffaabf633c968c22bdd/maintainability)](https://codeclimate.com/github/rubocop-hq/rubocop-rspec/maintainability) RSpec-specific analysis for your projects, as an extension to [RuboCop](https://github.com/bbatsov/rubocop). - ## Installation Just install the `rubocop-rspec` gem ```bash @@ -22,11 +21,10 @@ ``` gem 'rubocop-rspec' ``` - ## Usage You need to tell RuboCop to load the RSpec extension. There are three ways to do this: @@ -96,13 +94,52 @@ RSpec/FilePath: Exclude: - spec/my_poorly_named_spec_file.rb ``` +## Non-goals of RuboCop RSpec +### Enforcing `should` vs. `expect` syntax + +Enforcing + +```ruby +expect(calculator.compute(line_item)).to eq(5) +``` + +over + +```ruby +calculator.compute(line_item).should == 5 +``` + +is a feature of RSpec itself – you can read about it in the [RSpec Documentation](https://relishapp.com/rspec/rspec-expectations/docs/syntax-configuration#disable-should-syntax) + +### Enforcing an explicit RSpec receiver for top-level methods (disabling monkey patching) + +Enforcing + +```ruby +Rspec.describe MyClass do + ... +end +``` + +over + +```ruby +describe MyClass do + ... +end +``` + +can be achieved using RSpec's `disable_monkey_patching!` method, which you can read more about in the [RSpec Documentation](https://relishapp.com/rspec/rspec-core/v/3-7/docs/configuration/zero-monkey-patching-mode#monkey-patched-methods-are-undefined-with-%60disable-monkey-patching!%60). This will also prevent `should` from being defined on every object in your system. + +Before disabling `should` you will need all your specs to use the `expect` syntax. You can use [Transpec](http://yujinakayama.me/transpec/), which will do the conversion for you. + ## Contributing -Checkout the [contribution guidelines](.github/CONTRIBUTING.md) +Checkout the [contribution guidelines](.github/CONTRIBUTING.md). ## License `rubocop-rspec` is MIT licensed. [See the accompanying file](MIT-LICENSE.md) for the full text.