web-dev-qa-db-fra.com

Rspec a-t-il quelque chose de plus spécifique que target. Devrait être <6?

http://cheat.errtheblog.com/s/rspec/ a pour les inégalités (telles que inférieures ou supérieures à)

target.should be < 6

Quelque chose de mieux a-t-il été créé depuis la création de la feuille de triche?

52
Andrew Grimm

C'est toujours la façon acceptée de gérer ce test. Il est préférable d'utiliser>, <et == à mon avis pour les comparaisons numériques - c'est plus clair.

56
mrb_bk

Dans la nouvelle syntaxe d'attente de RSpec, vous l'exprimeriez comme suit:

expect(target).to be < 6
74

Si vous voulez simplement le vérifier dans une variable comme target puis target.should be < 6 est la voie à suivre.

Mais si vous voulez vérifier une propriété dans un autre objet, comme customer.orders, où les commandes sont une collection d'éléments, alors vous pouvez utiliser le avoir (n) .items matcher .

Exemple:

customer.should have_at_most(6).orders

C'est la même attente que celle-ci:

customer.orders.size.should be < 6

Mais avec un message plus clair

8
tothemario