テストを書かなさすぎてmockの意味をイマイチ理解していなかったので、mockを使うってどういうことだよw っていうのを学んでいました。
そもそもそこに至ったのはテストを書いてなさすぎてやばいからとりあえず、どう書けば良いのかというのをRuby ベストプラクティスという本で勉強してて、その1章がテストの章だったからです。ちなみにこの本はruby1.9をベースに書かれているのですが、内容には問題ないと思うので自分でruby2.3とかに対応した書き方に変えて書いていくと面白いです。





 mockって何よ?って話なんだけど、 mockってブラックボックスみたいなもので、あるclassのmethodにアクセスした時これ返してね!っていうのを決め打ちで決めれるんです。
というこは、こう書けるんです。



返却値を変えれるから、例えばAPIにアクセスしたい時とかはそのメソッドの返り値だけ決め打ちにしてテストをしたりできます。ということでこれからはしっかり使っていきます。

flexmock(@file).should_receive(:get_filename).and_return('test_mock')

ここでは、 flexmock(オブジェクト).should_receive(:mockで返すメソッド名).and_return(返り値)
と書いてます、
設定方法としては、他にも with(引数) や with_no_args といったメソッドが用意されている。