学习札记——运用Rspec+factory_girl进行model测试-创新互联

前几日摸了一下model的测试,不得其要点,老是在写测试不知如何下手,后阅遍大小论坛,总结一下测试方法呢,于是便模仿敏捷开发一书中的关于登录一章,写了如下测试代码
model代码
require "digest/sha2"
class User < ActiveRecord::Base
    attr_accessible :name,:password,:password_confirmation
    validates :name,:presence =>true,:uniqueness => true

    validates :password,:confirmation =>true
    attr_accessor :password_confirmation
    attr_reader :password

    validate :password_must_be_present

    def password=(password)
        @password = password
        if password.present?
            generate_salt
            self.hashed_password = self.class.encrypt_password(password,salt)
        end
    end

    def User.authenticate(name,password)
        if user == find_by_name(name)
            if user.hashed_password == encrypt_password(password,user.salt)
                user
            end
        end
    end

    private
    def password_must_be_present
            errors.add(:password,"密码错误")unless hashed_password.present?
    end

    def User.encrypt_password(password,salt)
            Digest::SHA2.hexdigest(password + "wibble" + salt)
    end

    def generate_salt
        self.salt= self.object_id.to_s + rand.to_s
    end
end

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。

创新互联是一家专业提供东源企业网站建设,专注与网站设计、成都网站设计、html5、小程序制作等业务。10年已为东源众多企业、政府机构等服务。创新互联专业的建站公司优惠进行中。
本文标题:学习札记——运用Rspec+factory_girl进行model测试-创新互联
本文链接:http://pwwzsj.com/article/ccidco.html