0
我有两个控制器创建一个用户,创建时,我想给他们发一封电子邮件。由于DRY,我将电子邮件逻辑移至on_create
回调。但是,现在,每当我在rspec测试中创建一个用户(例如使用factorygirl)时,它都会发送一封电子邮件。Rails:只测试一次on_create回调
一些可能的想法我有:
- 我可以模拟出这种行为,但后来我需要模拟这一切的时候...
- 我可以使它的参数(例如一个布尔值,只有当电子邮件应该被发送时才是真的),但是我只会添加这个测试
这样做的最干净的方法是什么?
最简洁的方法可能是*不使用模型回调,而是将用户创建封装在单独的类/模块/方法中。在那里,你可以明确地生成电子邮件(然后你不会在你的测试中做) – 2015-03-02 13:06:15