RSpec3
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
&tag(RSpec3);
*目次 [#zb8b3d40]
#contents
*関連ページ [#ed214407]
*参考情報 [#rc31256c]
-[[RSpecの入門とその一歩先へ 〜RSpec 3バージョン〜 - Qiit...
*RSpec入門の写経(細部省略) [#eb097ee2]
**セットアップ [#b02e8eaa]
-プロジェクトの作成
#pre{{
mkdir rspec3-for-beginners
cd rspec3-for-beginners
rbenv local 2.1.2
touch Gemfile
}}
-Gemfileの編集
#pre{{
source 'https://rubygems.org'
gem 'rspec', '3.0.0'
}}
-bundle install実行
bundle install --path vendor/bundle
**テスト対象を作成 [#x67940df]
-message_filter.rbを作成する
#pre{{
class MessageFilter
end
}}
**specの作成 [#yd0ad94d]
-message_filter_spec.rb を作成
#pre{{
require_relative 'message_filter'
describe MessageFilter do
end
}}
**実行 [#pba31e6f]
-bundleで実行
bundle exec rspec message_filter_spec.rb
***テストの進化 [#v9964531]
-テスト対象を修正
#pre{{
class MessageFilter
def initialize(word)
@word = word
end
def detect?(text)
text.include?(@word)
end
end
}}
-specの修正。
#pre{{
require_relative 'message_filter'
describe MessageFilter do
it 'detects message with NG word' do
filter = MessageFilter.new('foo')
expect(filter.detect?('hello from foo')).to eq true
end
end
}}
*rspecの書き方の個人的方針 [#oaba092b]
-[[Better Specs { rspec guidelines with ruby }:http://bet...
-基本的に以下のようにする。
#pre{{
describe テス対象クラス do
it 'コメント' do
expect().to eq true
end
end
}}
-itのあとのコメントはBetter Specsにあるようにメソッド名に...
#pre{{
describe '.build' do
describe '#admin?' do
}}
-itの中に複数書くのはご法度らしいけど、分けるのがめんどく...
-be_predicateマッチャーは使わない。
-「expect(hoge.fuga?).to eq true は expect(hoge).to be_fu...
終了行:
&tag(RSpec3);
*目次 [#zb8b3d40]
#contents
*関連ページ [#ed214407]
*参考情報 [#rc31256c]
-[[RSpecの入門とその一歩先へ 〜RSpec 3バージョン〜 - Qiit...
*RSpec入門の写経(細部省略) [#eb097ee2]
**セットアップ [#b02e8eaa]
-プロジェクトの作成
#pre{{
mkdir rspec3-for-beginners
cd rspec3-for-beginners
rbenv local 2.1.2
touch Gemfile
}}
-Gemfileの編集
#pre{{
source 'https://rubygems.org'
gem 'rspec', '3.0.0'
}}
-bundle install実行
bundle install --path vendor/bundle
**テスト対象を作成 [#x67940df]
-message_filter.rbを作成する
#pre{{
class MessageFilter
end
}}
**specの作成 [#yd0ad94d]
-message_filter_spec.rb を作成
#pre{{
require_relative 'message_filter'
describe MessageFilter do
end
}}
**実行 [#pba31e6f]
-bundleで実行
bundle exec rspec message_filter_spec.rb
***テストの進化 [#v9964531]
-テスト対象を修正
#pre{{
class MessageFilter
def initialize(word)
@word = word
end
def detect?(text)
text.include?(@word)
end
end
}}
-specの修正。
#pre{{
require_relative 'message_filter'
describe MessageFilter do
it 'detects message with NG word' do
filter = MessageFilter.new('foo')
expect(filter.detect?('hello from foo')).to eq true
end
end
}}
*rspecの書き方の個人的方針 [#oaba092b]
-[[Better Specs { rspec guidelines with ruby }:http://bet...
-基本的に以下のようにする。
#pre{{
describe テス対象クラス do
it 'コメント' do
expect().to eq true
end
end
}}
-itのあとのコメントはBetter Specsにあるようにメソッド名に...
#pre{{
describe '.build' do
describe '#admin?' do
}}
-itの中に複数書くのはご法度らしいけど、分けるのがめんどく...
-be_predicateマッチャーは使わない。
-「expect(hoge.fuga?).to eq true は expect(hoge).to be_fu...
ページ名: