Rspec暗黙的に定義されたサブジェクトのドキュメントは次のように述べています。
以下の例は、サブジェクトがユーザー向けの概念としてどのように使用されるかを示していますが、例からサブジェクトの使用を隠すカスタムマッチャーや拡張ライブラリのサポートのために予約することをお勧めします。
「件名」と呼ばないようにすべきだということですか。私の仕様に直接?はいの場合、サブジェクト オブジェクトとして代わりに何を使用すればよいですか?
Rspec暗黙的に定義されたサブジェクトのドキュメントは次のように述べています。
以下の例は、サブジェクトがユーザー向けの概念としてどのように使用されるかを示していますが、例からサブジェクトの使用を隠すカスタムマッチャーや拡張ライブラリのサポートのために予約することをお勧めします。
「件名」と呼ばないようにすべきだということですか。私の仕様に直接?はいの場合、サブジェクト オブジェクトとして代わりに何を使用すればよいですか?
これらの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)
。