[英]how to write test case using rspec of this method
我想為以下方法編寫測試用例。 我是單元測試的新手。 請讓我知道為以下方法編寫測試用例的正確方法。
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
這本身可能不是“答案”,但是一些評論/建議可能會幫助您指出正確的方向:
您的方法看起來正在返回哈希,即使它正在創建新用戶。 您可能應該返回新用戶。 如果存在錯誤,則activerecord對象將具有這些錯誤,無需添加您自己的錯誤。
記住要測試行為。 這對於點1的更改至關重要。此方法的行為是:它返回用戶記錄(無論是否保存),即行為。 測試一下。
您可能不需要調用user.valid?。 只需致電user.save
您可能只返回user.save本身,因為如果可行,您將獲得一個持久保存的用戶。 如果沒有,您可以檢查user.errors
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.