我已经编写了以下助手来为我的控制器发送电子邮件:
module SendEmail
def send_mail(subject, body)
to = "abc@gmail.com.com"
cc = "def@gmail.com"
html_message = %{<html><body>body</body></html>}
flag1 = system %{echo "#{html_message}" | mutt -e "set content_type=text/html" -s "#{subject}" #{cc} -- #{to}}
end
end
我应该在哪里放置此模块,以便控制器可以使用它?
我应该在哪里放置相同的rspec代码?我如何为此编写rspec-test案例?如何为此助手测试mutt
?
答案 0 :(得分:1)
你把它放在app/controllers/concerns
通过将调用分解为帮助方法来测试mutt
,该方法创建命令并测试该命令。你也可以存根或嘲笑system
电话。我不会直接测试mutt,作为外部资源,它应该使用像chef这样的配置工具正确配置。