出てくるメソッド
-
be_xxx
- be_valid
- be_empty
- be_falsey,be_truthy
-
change,by
# popは配列から要素を削除
# {}でかこう
x = [1, 2, 3]
expect{ x.pop }.to change{ x.size }.from(3).to(2)
# updateするときに`change`
it 'userを削除すると、userが書いたblogも削除されること' do
user = User.create(name: 'Tom', email: 'tom@example.com')
# user が blog を書いたことにする
user.blogs.create(title: 'RSpec必勝法', content: 'あとで書く')
expect{ user.destroy }.to change{ Blog.count }.by(-1)
end
- raise_error
class ShoppingCart
def initialize
@items = []
end
def add(item)
raise 'Item is nil.' if item.nil?
@items << item
end
end
it 'nilを追加するとエラーが発生すること' do
cart = ShoppingCart.new
expect{ cart.add nil }.to raise_error 'Item is nil.'
end
参考記事
伊藤淳一さんの記事
https://qiita.com/jnchito/items/2e79a1abe7cd8214caa5