The `sign_in_as` is never defined because the matchers and helpers are never included in RSpec because we check that RSpec is defined before automatically configuring:

https://github.com/thoughtbot/clearance/blob/master/lib/clearance/testing.rb#L13

We could do what other libraries do and document that the developer manually configures, removing the automatic configuration from Clearance's `testing.rb` file:

```ruby
RSpec.configure do |config|
  config.include Clearance::Testing::Matchers
  config.include Clearance::Testing::Helpers, type: :controller
end
```

Let me know what you think about that idea. The advantage of the `RSpec.configure` approach is it reduces the chance of this problem. The advantage of the `require` approach is better encapsulation, allowing us to change that code easier.

If you want to stick with the `require`, I'm thinking we should solve this problem for `Test::Unit` users, too:

    require Clearance's test helpers and matchers after you've loaded your test framework.

    For example, in `test/test_helper.rb` for `Test::Unit` suites:

    ```ruby
    require 'rails/test_help'
    require 'clearance/testing'
    ```

    Or, in `spec/spec_helper.rb` for RSpec suites:

    ```ruby
    require 'rspec/rails'
    require 'clearance/testing'
    ```

I don't like the feel of the "NOTE" line. It uses all caps and bolding, drawing attention to an edge case that should be handled by short, unsensational, clear instructions and visual code examples.

For my own understanding, can you say more about where you were previously placing the `require 'clearance/testing'` line and why you decided to place it where you did?