加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 如何在Rails中测试多个IP地址的登录

发布时间:2020-12-17 02:02:28 所属栏目:百科 来源:网络整理
导读:应客户要求,每次应用程序从不同的IP地址检测到同一用户的两个活动会话时,我必须实施发送通知电子邮件.你是如何测试的? 解决方法 创建集成测试test / integration / multiple_ip_test.rb require 'test_helper'@@default_ip = "127.0.0.1"class ActionContro
应客户要求,每次应用程序从不同的IP地址检测到同一用户的两个活动会话时,我必须实施发送通知电子邮件.你是如何测试的?

解决方法

创建集成测试test / integration / multiple_ip_test.rb

require 'test_helper'

@@default_ip = "127.0.0.1"

class ActionController::Request
  def remote_ip
    @@default_ip
  end
end

class MultipleIpTest < ActionDispatch::IntegrationTest
  fixtures :all

  test "send email notification if login from different ip address" do
    post_via_redirect login_path,:user => {:username => "john",:password => "test"}
    assert_equal "/users/john",path

    reset!
    @@default_ip = "200.1.1.1"
    post_via_redirect login_path,path
    assert_equal 1,ActionMailer::Base.deliveries.size
  end
end

集成测试看起来很像功能测试,但存在一些差异.您无法使用@request更改原始IP地址.这就是我必须打开ActionController :: Request类并重新定义remote_ip方法的原因.

因为对post_via_redirect的响应总是200,而不是使用assert_response:redirect我使用URL来验证用户是否已成功登录.

重置的电话!有必要开始一个新的会议.

有关集成测试的介绍,请检查Rails Guides测试,遗憾的是他们没有提到重置!方法.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读