Jak ładnie sformułować spece?

Hej,
mam taką zagwostkę:
Mam produkt. W zależności od kilku czynników cena i dostępność są zdefiniowane albo w produkcie, albo są brane od dostawcy.
I teraz zastanawiam się, jak nazwać odpowiednie testy w rspecu. Na razie mam tak:

it "should use data from supplier" it "should use data from self if has no data from supplier"
Z tymże testy w krokach będą bardzo podobne, oczywiście tam gdzie w pierwszym będę oczekiwał true, w drugim będę oczekiwał false.

Myślicie, że można to ładniej zdefiniować?

Może spróbuj z kontekstami, np tak:

[code=Ruby]describe Product, “with data from supplier”
before do
@supplier = Supplier.new
@product = Product.new supplier: @supplier
end

it “should use supplier’s price as its price” do
end
end

describe Product, “without data from supplier”
before do
@product = Product.new supplier: nil
end

it “should use own price as its price” do
end
end[/code]

hekto5, ale po co 2 razy “opisywac” klase produkt skoro mozna zrobic to raz a konteksty zrobic zagniezdzone:

[code=Ruby]describe Product do
context “with data from supplier” do
before do
@supplier = Supplier.new
@product = Product.new supplier: @supplier
end

it "should use supplier's price as its price" do
end

end

context “without data from supplier”
before do
@product = Product.new supplier: nil
end

it "should use own price as its price" do
end

end
end[/code]

Jeśli chcesz zagnieżdżać to proponuję takie podejście: http://gist.github.com/338594.

Bez zagnieżdżania możesz wykorzystać share_examples_for lub share_as - mógłbyś tam umieścić wszystkie wspólne specyfikacje i dołączać je później do oddzielnych kontekstów.