2010-11-04 85 views
3

我正在尝试集成测试使用邮件插件的类。当我运行我的测试时(grails test-app -integration EmailerIntegration),我得到错误:Grails:集成测试邮件插件

找不到邮件正文布局/ _email。它是在一个插件?如果是这样,你必须通过插件名称在[插件]变量

是否有一些初始化代码我从我的测试用例的setUp方法中缺少?

下面是测试情况下,代码:

package company 

import grails.test.* 

class EmailerIntegrationTests extends GrailsUnitTestCase { 
    protected void setUp() { 
     super.setUp() 
    } 

    protected void tearDown() { 
     super.tearDown() 
    } 

    void testSomething() { 
     User owner = new User() 
     owner.displayName = "Bob" 
     owner.email = "[email protected]" 

     Emailer emailer = new Emailer() 
     emailer.sendReadyEmail(owner) 
    } 
} 

这里是被测试为类代码:

package company 

import org.apache.log4j.Logger; 
import org.codehaus.groovy.grails.commons.ApplicationHolder; 
import org.springframework.context.ApplicationContext; 

class Emailer { 
    private Logger log = Logger.getLogger(this.getClass()); 
    ApplicationContext ctx = (ApplicationContext)ApplicationHolder.getApplication().getMainContext(); 
    def mailService = ctx.getBean("mailService"); 

    def sendReadyEmail = { owner -> 
      mailService.sendMail { 
        to owner.email 
        subject "Ready to go" 
        body(view:"layouts/_email", model:[ownerInstance:owner]) 
      } 
    } 
} 

谢谢,

埃弗里特

回答

0

bodysendMail(..)方法中的参数是带有键的映射view,modelpluginplugin的值是必需的,并且指向一些其他支持插件,例如,该相应插件的名称“email-confirmation”。

您的错误消息引发org.grails.mail.MailMessageBuilder.renderMailView(Object, Object, Object)。您可以在Grails项目的插件文件夹中找到此类。

不幸的是,我没有在Mail插件上找到太多文档。因此,目前,我不能轻易说出如何使用上述支持插件。但是,如果你无法前进,我可能会尝试进一步调查。谢谢

+0

没有运气。我无法找到提供测试工作的插件密钥的价值。 – 2010-11-05 21:19:36

+0

如上所述,一个可能的关键是“电子邮件确认”。 - 在此期间,您是否找到相关文件,或者您是否有其他发现? - 没有像“请为我解决”这样的单方面的事情。 - 如果你愿意努力,我会有兴趣进一步调查,但我不会做别人的功课。 - 我们都可以得出结论,文档太少,阻止我们使用这些插件。 - 谢谢 – robbbert 2010-11-05 22:31:11

+0

我应该更具体一些,我尝试了一些插件关键字的值,例如“email-confirmation”,“email”和“spring-events”(我碰巧使用的另一个插件)。每一次尝试都遇到了一个例外。然而,在找到一些额外的时间来深入研究之后,我找到了答案。 – 2010-11-17 21:02:56