相关疑难解决方法(0)

如何向 Rails 中的功能规范添加请求方法?

我有一个简单的测试功能,称为test_feature_spec.rb

(这只是为了解决这个问题......实际规格要长得多,实际功能规格)

require "features_helper"

RSpec.feature "Simple Feature", type: :feature do
  scenario "a test scenario" do
    get "/"
  end
end
Run Code Online (Sandbox Code Playgroud)

我可以做各种 Rails-y 的事情,包括水豚驱动的事情(比如visit such_n_such_path)。然而上面的崩溃:

Failures:

  1) Simple Feature a test scenario
     Failure/Error: get "/"

     NoMethodError:
       undefined method `get' for #<RSpec::ExampleGroups::SimpleFeature:0x000000011a799788>
       Did you mean?  gets
                      gem
Run Code Online (Sandbox Code Playgroud)

如果我只是将其更改为type: :feature它就type: :request可以正常工作:

> rspec spec/features/test_feature_spec.rb
.

Finished in 0.64913 seconds (files took 5.82 seconds to load)
1 example, 0 failures
Run Code Online (Sandbox Code Playgroud)

似乎使用type=> Rails 或 Rspec 加载一些东西以允许调用控制器路由,但使用=> …

rspec ruby-on-rails

5
推荐指数
1
解决办法
1467
查看次数

rspec/capybara:如何模拟传入的POST请求?(机架测试不起作用)

我需要通过Cloudmailin的POST请求接收传入的电子邮件作为multipart-formdata.POST类似于以下内容:

Parameters: {"to"=>"<email@exmaple.comt>", "from"=>"whomever@example", "subject"=>"my awesome subject line....
Run Code Online (Sandbox Code Playgroud)

实际上,接收和解析电子邮件非常简单,因为电子邮件只是以params:params [:to],params [:from]等发布.但是,如何在rails中模拟此POST请求?

我构建了一个虚拟rails应用程序来测试Cloudmailin,所以我有一个实际的请求.但是,它是一个6k字符的文件,所以我想加载这个文件作为POST请求的参数.我已经尝试使用内置的rails post和post_via_redirect方法来加载文件,但它会转义所有参数(\"to \"),这是不行的.有任何想法吗?

ruby-on-rails capybara rspec2 ruby-on-rails-3 cloudmailin

4
推荐指数
1
解决办法
4834
查看次数