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测试,遗憾的是他们没有提到重置!方法. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- C#使用EWS创建日历项目,如何获取结果?
- c# – 如何引发使用“事件属性”定义的事件
- ruby-on-rails – 如何选择包含n个以上子记录的所有记录
- ruby-on-rails – Rails应用程序中没有tmp / restart.txt文
- SDL Tridion:XML格式的页面的逻辑结构
- c# – 当使用复合键将IDENTITY_INSERT设置为OFF时,无法在表
- uboot 之 lds文件详解
- C#设计模式之十三模板方法模式(Template Method Pattern)
- DDD领域驱动设计(Domain Driven Design)(转)
- PostgreSQL范围类型中的NULL与`infinity`