rspec実践一(ゼロから)


rspecを利用する文章については感覚が少ないので、簡潔なrspec実践の心得を書くつもりで、ゼロから、一歩一歩深く探求します.
 
ちなみにBDについての意見ですが、このような開発方式はやはり頼りになると思います.個人的には伝統的なTDD開発は退屈で、時間の無駄を感じさせます.また、TDDが開発したものは、機能的に正確性を保証することができますが、製品の観点から見ると、結果はお客様の期待とはかけ離れていることが多いと思います.両者の最大の違いは、BDDの目的は,検査結果の正確性だけでなく,テスト用例の記述要件を可能にすることであり,これにより,テスト用例を書く過程でプログラマーがニーズを徐々に理解し,自分がどのような製品を作る必要があるのかを理解することができる.
 
gem install rspec
gem install rspec-rails
 
 
rspec-railsはrspecのrails拡張ライブラリであり、テストスケルトンの生成を簡素化し、テスト例を実行することにほかならない.
 
せいぎょそうち
ruby script/generate rspec_controller dog bark fetch
後ろには試行ファイルの名前がついています
 
モデル#モデル#
ruby script/generate rspec_model User
 
自動生成されるコードは次のとおりです.
 
require 'spec_helper'

describe User do
  before(:each) do
    @valid_attributes = {
      :username => "sharp"
    }
  end

  it "should create a new instance given valid attributes" do
    User.create!(@valid_attributes)
  end
end
 
説明が必要なのはdescribeメソッドがSpec::Example::ExampleGroupのサブクラスを生成し、itメソッドがshould_を生成したことです.×××××のメソッド、すなわちdescribeメソッドはサンプルグループを生成し、itによってすべてのサンプルを生成します.
 
Spec::Mock
1つのシステムでは、他のオブジェクトをエージェントするオブジェクトがたくさんあります.このオブジェクトをテストするときに、必要なエージェントのオブジェクトがまだ開発されていない場合は、エージェントのオブジェクトをシミュレートする必要があります.
Method stubsとmesssage expectationsはメソッドレベルの概念であり、test doublesまたはtest-specific extensionsはオブジェクトレベルの概念である.
test doubleは、サンプルで他のオブジェクトを表すことができるオブジェクトであり、その使い方によってmocks、stubs、fakes、impostersなどと同様に、mockはオブジェクトレベルであり、stubはメソッドレベルであることに注意してください.
 
 
 
続きを待つ