Я бы порекомендовал сделать
@user.errors[:password].to_s.should =~ /is too short/
Просто потому, что это даст вам более полезную ошибку, если она не удастся.Если вы используете be_any
, вы получите сообщение, подобное этому ...
Failure/Error: @user.errors[:password].should be_any{ |m| m =~ /is too short/}
expected any? to return true, got false
Однако, если вы используете метод to_s
, вы получите что-то вроде этого:
Failure/Error: @user.errors[:password].to_s.should =~ /is too short/
expected: /is to short/
got: "[]" (using =~)
Diff:
@@ -1,2 +1,2 @@
-/is too short/
+"[]"
Таким образом, вы можете увидеть причину неудачи, и вам не нужно много копаться, чтобы выяснить, почему она терпит неудачу.