以下のメソッドのテストケースを記述したいと思います。私はユニットテストの初心者です。下記のメソッドのテストケースを記述する正しい方法を教えてください。このメソッドのrspecを使ってテストケースを書く方法
def create_new_user
self.password_salt = BCrypt::Engine.generate_salt
self.password_hash = BCrypt::Engine.hash_secret(self.password, password_salt)
user = User.new(email: self.email, username:self.username, password_hash: password_hash, password_salt: password_salt)
if user.valid?
user.save ? {is_created: true, err:''} : {is_created: false, err:'Something went wrong,please try later...'}
else
{is_created: false, err: 'Please enter all mandetory fields..'}
end
end
ここで問題は何ですか?あなたはrspec構文に慣れていませんか?一般的なユニットテストですか? –
@SergioTulentsev私はrspecを初めて使う人です。それはrspecだけで2〜3日間です。私はそれが有効なユーザーの場合 "(ユーザー)を保存する"のような構文を探しています。 「BCrypt :: Engine.generate_salt」のテスト方法について説明します。私は、BCryptがどのようにして塩を生成してからハッシュを生成するのかを言うことを意味します。 –
なぜあなたはBCryptメソッドをテストする必要があると思いますか?このlibは、開発者によって大きくテストされています。努力を複製する必要はありません。ただし、正しいメソッドが呼び出されているかどうかを確認することができます。 'expect(BCrypt :: Engine).to receive(:generate_salt).and_call_original'などです。 –