LoginSignup
5
3

More than 5 years have passed since last update.

stub, mocksでインスタンスメソッドの返り値を指定しようとしたときにハマった話

Posted at

stub, mocksでインスタンスメソッドの返り値を指定しようとしたときにハマった話。

Object.stub(:method).and_return(return value)で
depricate warningがでる。

ここ見る(mocksを使えばいい)
http://qiita.com/runamoon@github/items/1113656a02c0552cbba1

mocksがわからないのでここ見る(rspec-mocksのレポジトリ)
https://github.com/rspec/rspec-mocks

doubleが何なのかわからない

次にここ見る(テストdoubleについての説明)
http://web-k.github.io/blog/2012/10/02/rspec-mock/

まとめるとdoubleとはダミーオブジェクトを作成するもの。なんでdoubleという命名かはあまりわからない。

自分のよう”後からテストを書く人間”にとっては無関係。
そんな怠惰な人間にとって必要なのは、

allow(Object).to receive(:method) {return value}
ではなく、
allow_any_instance_of(Object).to reveive(:method) {return value}
だった。

ダミーオブジェクトでもないObjectに前者の記述をしたところで無視されてハマっていた。

5
3
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
3