# rspecのインストール

本筋から脱線するため、この章はおまけにしました。

今まで記述してきたminitestを全てrspecに置換していきます。

2つのコードを見比べて、普段の開発でどちらを使うかの判断材料にしていただけたらと思います。

### rspecをgemファイルに追加する

早速rspecを導入していきましょう。

gemファイルに追記します。

```
gem 'rspec', '~> 3.4'
```

完了したらdocker-compose buildを実行(rubocopの時と同じです)

再度コンテナを立ち上げて中に入りrspecが入ったかどうかを確認します。

```
docker exec -ti code /bin/bash
gem  list | grep "rspec"
```

こんな感じで色々出てきたらOK。

```
rspec (3.12.0)
rspec-core (3.12.2)
rspec-expectations (3.12.3)
rspec-mocks (3.12.6)
rspec-support (3.12.1)
```

### 設定ファイルの作成

コンテナ内で以下のコマンドを実行します。

```
rspec --init
```

実行完了後、spec/spec\_helper.rbファイルが現れます。

spec\_helper.rbファイルのコメントになっている部分を消します。

```
...
# with RSpec, but feel free to customize to your heart's content.
=begin <--- ココを削除!!
  # This allows you to limit a spec run to individual examples or groups
  # you care about by tagging them with `:focus` metadata. When nothing
  # is tagged with `:focus`, all examples get run. RSpec also provides
  # aliases for `it`, `describe`, and `context` that include `:focus`
  # metadata: `fit`, `fdescribe` and `fcontext`, respectively.
  config.filter_run_when_matching :focus

  # Allows RSpec to persist some state between runs in order to support
  # the `--only-failures` and `--next-failure` CLI options. We recommend
  # you configure your source control system to ignore this file.
  config.example_status_persistence_file_path = "spec/examples.txt"

  # Limits the available syntax to the non-monkey patched syntax that is
  # recommended. For more details, see:
  # https://rspec.info/features/3-12/rspec-core/configuration/zero-monkey-patching-mode/
  config.disable_monkey_patching!

  # This setting enables warnings. It's recommended, but in some cases may
  # be too noisy due to issues in dependencies.
  config.warnings = true

  # Many RSpec users commonly either run the entire suite or an individual
  # file, and it's useful to allow more verbose output when running an
  # individual spec file.
  if config.files_to_run.one?
    # Use the documentation formatter for detailed output,
    # unless a formatter has already been configured
    # (e.g. via a command-line flag).
    config.default_formatter = "doc"
  end

  # Print the 10 slowest examples and example groups at the
  # end of the spec run, to help surface which specs are running
  # particularly slow.
  config.profile_examples = 10

  # Run specs in random order to surface order dependencies. If you find an
  # order dependency and want to debug it, you can fix the order by providing
  # the seed, which is printed after each run.
  #     --seed 1234
  config.order = :random

  # Seed global randomization in this process using the `--seed` CLI option.
  # Setting this allows you to use `--seed` to deterministically reproduce
  # test failures related to randomization by passing the same `--seed` value
  # as the one that triggered the failure.
  Kernel.srand config.seed
=end  <--- ココを削除!!
end
```

これで初期設定は完了です。


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://kashiwara.gitbook.io/rubydesurufurusukuratchibe/omake-rspecwottatesuto/rspecnoinsutru.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
