在 rspec 中测试邮件程序

发布于 2024-11-03 02:58:33 字数 221 浏览 1 评论 0原文

是否没有简单的方法可以在邮件程序规范中执行与 response.should render_template(:foo) 等效的操作?这就是我想做的:

mail.should render_template(:welcome)

有这么多要问吗?我是否陷入了heredocs的黑暗时代或手动读取固定装置以进行匹配?

Is there no simple way to do the equivalent of response.should render_template(:foo) in a mailer spec? Here's what I want to do:

mail.should render_template(:welcome)

Is that so much to ask? Am I stuck in the dark ages of heredocs or manually reading fixtures in to match against?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

匿名的好友 2024-11-10 02:58:33

您是否尝试过查看email-spec。它没有确切的语法,但用于测试发送电子邮件的各个方面。

Have you tried looking at email-spec. It doesn't have the exact syntax but it is used for testing various aspects of sending emails.

梦忆晨望 2024-11-10 02:58:33
    # IMPORTANT!
    # must copy https://gitlab.com/gitlab-org/gitlab/-/blob/master/spec/support/helpers/next_instance_of.rb
    it 'renders foo_mail' do
      allow_next_instance_of(described_class) do |mailer|
        allow(mailer).to receive(:render_to_body).and_wrap_original do |m, options|
          expect(options[:template]).to eq('foo_mail')

          m.call(options)
        end
      end

      body = subject.body.encoded
    end
    # IMPORTANT!
    # must copy https://gitlab.com/gitlab-org/gitlab/-/blob/master/spec/support/helpers/next_instance_of.rb
    it 'renders foo_mail' do
      allow_next_instance_of(described_class) do |mailer|
        allow(mailer).to receive(:render_to_body).and_wrap_original do |m, options|
          expect(options[:template]).to eq('foo_mail')

          m.call(options)
        end
      end

      body = subject.body.encoded
    end
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文