我想爲以下方法編寫測試用例。我是單元測試新手。請讓我知道爲以下方法編寫測試用例的正確方法。如何使用此方法的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天的時間。我正在尋找像「expect(user).to be saved」這樣的語法,如果它是一個有效的用戶。以及如何測試「BCrypt :: Engine.generate_salt」。我的意思是說如何測試BCrypt應該生成鹽然後散列 –
爲什麼你認爲你需要測試BCrypt方法?這個lib經過了開發人員的嚴格測試。沒有必要重複努力。不過,您可能會檢查調用的方法是否正確。例如,期望(BCrypt :: Engine)。接收(:generate_salt)和call_original。 –