メソッド引数の内容をテストする
Overview
引数のテストは業務中によく発生していた不具合解消で使えそう。
Motivation/Context
以外に多いんだよね、引数の引数の不正値による不具合。
その時、テストコードを1行追加するだけで済むのは楽。
Get Started!!
expect(twitter_client_mock).to receive(:update).with('今日は晴れです')
# update メソッドが呼ばれることを検証する
# ただし、引数は '今日は晴れです' かつ、呼び出される回数は1回だけであること
expect(twitter_client_mock).to receive(:update).with('今日は晴れです').once
expect(user).to receive(:save_profile).with(‘Alice’, ‘alice@example.com’)
# 2つ以上の引数を受け取る場合
expect(user).to receive(:save_profile).with('Alice', 'alice@example.com')
# ハッシュを引数として渡す場合
expect(user).to receive(:save_profile).with(name: 'Alice', email: 'alice@example.com')
# ハッシュ全体ではなく、特定のkeyとvalueだけに着目する場合
expect(user).to receive(:save_profile).with(hash_including(name: 'Alice'))