问题描述
第一次测试
assert_changes '@user_end.login_name' do
post update_login_user_path(id: @user_end.id),params: { user: { email: '',mobile_nation_id: 1,mobile: 876321 } }
end
"@user_end.login_name" didn't change.
Expected "end_consumer_email@mail.co" to not be equal to "end_consumer_email@mail.co".
第二次测试
post update_login_user_path(id: @user_end.id),mobile: 876321 } }
assert_equal(39876321,@user_end.login_name)
Expected: 39876321
Actual: "end_consumer_email@mail.co"
两者都返回夹具值而不是预期值,这是在应用程序中实际生成的。控制器动作:
if params[:user][:email].present? || params[:user][:mobile].present?
set_user_login_name
end
def set_user_login_name
if !params[:user][:email].blank?
params[:user][:login_name] = params[:user][:email].gsub(/\s+/,"")
elsif !params[:user][:mobile_nation_id].blank? && !params[:user][:mobile].blank?
@nation = Nation.where(id: params[:user][:mobile_nation_id]).first
params[:user][:login_name] = @nation.phone_cc.to_s + params[:user][:mobile].to_s
params[:user][:twilio_number] = '+' + @nation.phone_cc.to_s + params[:user][:mobile].to_s
else
params[:user][:login_name] = ''
end
params[:user][:kee] = SecureRandom.alphanumeric(32)
params[:user][:virtual_qr_code] = params[:user][:login_name] + params[:user][:kee]
end
由于这些方法在实践中起作用,很明显我没有掌握如何正确使用这两个断言。我似乎无法调用更新的记录 (而创建 assert_equal('18831912200',User.last.login_name)
很简单)
如何强制转换其中之一来断言上述方法?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)