我们的 Griddler 模型测试工作正常。例如,我们可以实例化 lib/email_processor.rb 并对其进行处理。我们想要创建一个控制器测试,它对标准 /email_processor 进行端到端的发布。
问题是参数没有通过帖子。我们的基本代码是:
@postattr= {to: "hello@hello.com", subject: "a subject", attachments: [
ActionDispatch::Http::UploadedFile.new({
filename: 'example_virgin_onetransaction.pdf',
type: 'application/pdf',
tempfile: File.new('testfiles/examplefile.pdf")})
]}
post :create, @postattr
expect(response).to be_success
它在发布到正确的路线并得到处理时工作,除了 email.attachments 对象为零。
我们试过了
- @postattr.to_json # 在 UTF-8 中给出无效的字节序列
- @postattr.to_s.to_json # 有效,但没有传递参数
- uri 编码 json 字符串
似乎没有得到正确处理。我们错过了什么?