我有一个简单的测试功能,称为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 加载一些东西以允许调用控制器路由,但使用=> …
我需要通过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 \"),这是不行的.有任何想法吗?