コントローラーで半角英数字記号8文字ランダムのパスワードを生成しました。
これをrspecでテストをしたいです。
rspec/modelでのvalidatationは対応済です。
rspec/controllerでランダムパスワード8文字生成出来ているかをテストしたいのですが、
結果がランダムなので一致しません。
一致する方法、もしくは生成出来ているかテストするには
どのような書き方があるのでしょうか
ご教示いただけますと幸いです。
** expect(subject.password_new).to eq subject.password_new**
controller helper_method :password_new def password_new(length = 8) numbers = [*0..9] alpha_bigs = [*'A'..'Z'] alpha_smalls = [*'a'..'z'] symbols = '! @ ; :'.split(/\s+/) codes = [numbers, alpha_bigs, alpha_smalls, symbols].shuffle password = [] length.times do |i| password << codes[i % codes.length].sample(1) end password.shuffle.join end
spec/controller describe "#your_helper_method" do it "returns a helpful string" do expect(subject.password_new).to eq subject.password_new end end
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。