以下の内容はhttps://anton0825.hatenablog.com/entry/20100617/1279038228より取得しました。


テスト時に実行したくないメソッドを切り替える方法

ネットワークやDBにアクセスするコードは単体テスト時には実行したくないですよね。
そういうコードをテスト環境で切り替える方法はいくつかありますが、一番お手軽な方法はメソッドを上書きする方法です。


方法1.サブクラスでoverride

class Target
  def foo
    open("http://yahoo.co.jp/")
  end
end

class TestingTarget < Target
  def foo
    return File.open("yahoo.html").read
  end
end

describe TestingTarget do
  it "testing" do
    target = TestingTarget.new
    target.foo.should == "expectation"
  end
end

手順は以下です。
1.ネットワーク・DBにアクセスしているコードをメソッドに抽出する。
2.テスト用のサブクラスを作成し、1番で抽出したメソッドをoverrideする。
3.テスト用のサブクラスに対してテストをする




以上の内容はhttps://anton0825.hatenablog.com/entry/20100617/1279038228より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14