markdown Rspec的入门

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了markdown Rspec的入门相关的知识,希望对你有一定的参考价值。

# install

```
group :development, :test do
  gem 'rspec-rails'
  gem 'factory_girl_rails'
end
```  

```
$ bundle install
$ bundle exec rails g rspec:install
```

# テスト実行コマンド

```
$ bundle exec rspec spec/models/user_spec.rb
```

# モデル

Userモデルに関するテストを書くファイル作成

```
$ bundle exec rails g rspec:model user
```

```ruby
describe User do # 対象モデル
  describe "#name" do # 対象メソッド
    let(:user){ User.new(name: "")
    
    it "validでないこと" # 期待する内容
      user.valid?
      expect(user.errors[:name]).to be_present
    end
  end
end
```

# コントローラー

```ruby
describe "GET #new" do 
  context "ログインユーザーがアクセスしてきた時" do
    before do
      get :new
    end
    
    it "ステータスコード200を返す" do
      expect(response.status).to eq(200)
    end
  end
end
```    

# stub

外部に依存するメソッドを擬似的に返り値を設定する。
例えば、外部APIを叩くメソッドなどは正しい値が帰ってくることを期待するが、毎回叩きたくない。

```
class User
  def hoge
    # 外部のAPI等を叩く処理
  end
end

let(:user){ User.new }
allow(user).to receive(:hoge){
  "result"
}
puts user.hoge #=> result
```

以上是关于markdown Rspec的入门的主要内容,如果未能解决你的问题,请参考以下文章

markdown RSPEC

markdown Rspec - TDD

markdown RSpec备忘单

markdown js:trueにしたRSpecのE2Eテストがjavascriptが実行できずに失败する

Markdown常用使用技巧--完整入门指南

Markdown——入门指南