Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 cumber、rails和会话变量_Ruby On Rails 3_Cucumber_Session Variables - Fatal编程技术网

Ruby on rails 3 cumber、rails和会话变量

Ruby on rails 3 cumber、rails和会话变量,ruby-on-rails-3,cucumber,session-variables,Ruby On Rails 3,Cucumber,Session Variables,我正在实现两步登录。在第一步中,用户必须输入其电子邮件+密码。如果正确,则生成一个随机字符串,存储在会话中并发送到帐户持有人的手机 我想知道如何从我的步骤定义中访问会话变量,或者如何捕获随机字符串,以便我可以在表单中使用fill,并在用户使用它时测试整个登录。字符串不存储在模型中,因为它只是临时的 谢谢, Corin将令牌生成器存根以返回一个固定字符串。我通过存根SMSGateway解决了这个问题。features/env.rb中的我的代码: require 'cucumber/rspec/do

我正在实现两步登录。在第一步中,用户必须输入其电子邮件+密码。如果正确,则生成一个随机字符串,存储在会话中并发送到帐户持有人的手机

我想知道如何从我的步骤定义中访问会话变量,或者如何捕获随机字符串,以便我可以在表单中使用fill,并在用户使用它时测试整个登录。字符串不存储在模型中,因为它只是临时的

谢谢,
Corin将令牌生成器存根以返回一个固定字符串。

我通过存根SMSGateway解决了这个问题。features/env.rb中的我的代码:

require 'cucumber/rspec/doubles'

...

Before do |scenario|
  @smsgateway_sent_text_messages = []
  SMSGateway.stub(:send_text_message) do |message, phone_number|
    @smsgateway_sent_text_messages << {
      :phone_number => phone_number,
      :message => message,
    }
  end
end
要求“cumber/rspec/double”
...
在做之前|情景|
@短信发送短信=[]
SMSGateway.stub(:发送文本消息)发送消息、电话号码|
@smsgateway\u发送了\u短信\u电话号码,
:message=>message,
}
结束
结束

这会管用,但我发现最好将SMSGateway存根,这样我也可以检查发送的整个消息。无论如何,谢谢!:)