読者です 読者をやめる 読者になる 読者になる

海の響きを懐かしむ

さみしくはない

マッチャとお寿司

第6章を全て終わらせた。やっと半分だ。
http://railstutorial.jp/chapters/modeling-users?version=4.0#top

一点、はまったところについて書いておく。

リスト6.28 パスワードの長さとauthenticateメソッドをテストする。というところで、
既存のuserモデルに対して間違ったパスワードで認証しようとすると、falseになる、というテストコードがある。

describe "with invalid password" do
      let(:user_for_invalid_password) { found_user.authenticate("invalid") }

      it { should_not eq user_for_invalid_password }
      specify { expect(user_for_invalid_password).to be_false }
    end
end

この箇所で、テストが通らなかった。

Failures:

  1) User return value of authenticate method with invalid password should be false
     Failure/Error: specify {user_for_invalid_password.should be_false}
       expected false to respond to `false?`
     # ./spec/models/user_spec.rb:93:in `block (4 levels) in <top (required)>'


なんでかなーと思っていたら、
specify { expect(user_for_invalid_password).to be_false }
のところの最後の"be_false"、Rspec 3.0からは"be_falsy"って書き方になったらしい。
be_trueとかbe_falseとかいうものは、マッチャと言うらしい。まっちゃ・・・

be_true/be_falseマッチャが、be_truthy/be_falsey(またはbe_falsy)にリネームされ、3.0ではbe_true/be_falseは利用できなくなります。この変更は既に3.0.0.beta1に取り込まれています。
RSpecの最新の動向・RSpec 3へのアップグレードガイド – blog.yujinakayama.me

何かがうまくいかないとき、バージョンを確かめる癖はつけたほうがいいかもしれない。
それと、最初、「error文 rails」「error文 ruby」みたいなキーワードでググっていたけど、こういうのは本来「error文 rspec」みたいにググるべきで、こういう部分もリテラシが足りてない。 (リテラシ以前に私がバカなだけっていうのもある)



ところで今日、築地で予定があって、待ち合わせの空き時間にどうしてもお腹が空いてしまったので、ふらっと立ち食い寿司屋に行って寿司を食べた。板前さんを囲むようにお客さんがカウンター前に立っていて、自分の食べたいものを伝えていくのだけれど、他のお客さんとの間合いをとってduplicationしないように注文しなければならなくて、スリルがある。鮮やかな手つきに見とれていると、すぐにほやほやの握りがやってくる。

普段まぐろやあじばかりの私だけど、思い切ってげそやこはだも頼んだ。
しめて1200円。とてもおいしくて、働くって悪くないな、大人っていいなって思ったのだった。