あるプログラムのテストを書いていて、既存のクラスの動作を真似するダミークラスをモックと呼ぶべきなのかスタブと呼ぶべきなのか分からなくなり、少し調べてみたところ、そのものずばりの文書が見つかりました。 Ruby on Rails でのモックとスタブの作成 Mocks Aren't Stubs (和訳 モックとスタブの違い) 特に2の文書で述べられている「状態中心のテストと振る舞い中心のテスト」という概念がとても興味深かったので、さっそく自分のプログラムのテストに試してみました。 それをさらに抽象化したサンプルを作ったので、それを解説してみます。 サンプルクラス 以下が、今回のテストで扱うクラスです。 ### sample.rb ### class C @@value = "default" def self.global_control(value) @@value = value end