【发布时间】:2015-03-02 12:59:23
【问题描述】:
我有两个创建用户的控制器,在创建时,我想给他们发送一封电子邮件。由于 DRY,我将电子邮件逻辑移至 on_create 回调。但是,现在,每次我在 rspec 测试中创建用户(例如使用 factorygirl)时,它都会发送一封电子邮件。
我的一些可能的想法:
- 我可以模拟这种行为,但我需要一直模拟它......
- 我可以将其设为参数(例如,仅当应发送电子邮件时才为 true 的布尔值),但我只会添加此参数用于测试
这样做最干净的方法是什么?
【问题讨论】:
-
最简洁的方法可能是不使用模型回调,而是将用户创建包装在单独的类/模块/方法中。在那里,您可以显式生成电子邮件(您在测试中不会这样做)
标签: ruby-on-rails activerecord rspec