簡體   English   中英

如何使用此方法的rspec編寫測試用例

[英]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

這本身可能不是“答案”,但是一些評論/建議可能會幫助您指出正確的方向:

  1. 您的方法看起來正在返回哈希,即使它正在創建新用戶。 您可能應該返回新用戶。 如果存在錯誤,則activerecord對象將具有這些錯誤,無需添加您自己的錯誤。

  2. 記住要測試行為。 這對於點1的更改至關重要。此方法的行為是:它返回用戶記錄(無論是否保存),即行為。 測試一下。

  3. 您可能不需要調用user.valid?。 只需致電user.save

  4. 您可能只返回user.save本身,因為如果可行,您將獲得一個持久保存的用戶。 如果沒有,您可以檢查user.errors

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM