3

Rspec暗黙的に定義されたサブジェクトのドキュメントは次のように述べています。

以下の例は、サブジェクトがユーザー向けの概念としてどのように使用されるかを示していますが、例からサブジェクトの使用を隠すカスタムマッチャーや拡張ライブラリのサポートのために予約することをお勧めします。

「件名」と呼ばないようにすべきだということですか。私の仕様に直接?はいの場合、サブジェクト オブジェクトとして代わりに何を使用すればよいですか?

4

1 に答える 1

3

これらの2つの例を比較してください。

describe "User" do
  subject { User.new(age: 42) }
  specify { subject.age.should == 42 }
  its(:age) { should == 42 }
end

describe "User" do
  let(:user) { User.new(age: 42) }
  specify { user.age.should == 42 }
end

アップデート

Rspecにはクールな機能があります-名前付きの件名:

これがDavidChelimskyの例です。

describe CheckingAccount, "with a non-zero starting balance" do
  subject(:account) { CheckingAccount.new(Money.new(50, :USD)) }
  it { should_not be_overdrawn }
  it "has a balance equal to the starting balance" do
    account.balance.should eq(Money.new(50, :USD))
  end
end

user代わりに使用すると、subjectより読みやすくなります(IMHO)。しかし、subject素敵な拡張機能を使用できますits(:age)

于 2012-06-11T23:13:50.450 に答える