Probabilmente sai come usare describe
, context
, it
e specify
per comunicare chiaramente un aspetto del tuo codice. Il contesto nidificato fornito da it_behaves_like
può essere utilizzato per migliorare questa comunicazione con il lettore.
baserò il mio esempio su l'esempio dato nella documentazione RSpec per shared examples:
shared_examples "a collection" do
context "initialized with 3 items" do
it "says it has three items" do
# ...
end
end
end
describe Array do
it_behaves_like "a collection"
include_examples "a collection"
end
Se si esegue RSpec con --format documentation
si ottiene il seguente output:
Array
behaves like a collection
initialized with 3 items
says it has three items
initialized with 3 items
says it has three items
Quindi la differenza è come si legge la specifica, ad esempio in caso di errore.
Quale stile preferisci è una questione di estetica di come ti piace leggere le tue specifiche. Inoltre, consiglieresti di usare sempre lo stesso stile se lavori in una squadra per migliorare la coerenza.
Inoltre, sono it_should_behave_like e it_behaves_like solo sinonimi?
Quasi, il contesto è denominato in modo diverso. it should behave like ...
vs behaves like ...
. Di nuovo una questione di estetica.
Si prega di fare riferimento a: http: //users.cms. caltech.edu/~mvanier/hacking/rants/cars.html, sezione Ruby. –