2011-03-15 67 views
0

我遇到了Grails网站的“Grails入门”教程问题。它让我在utils目录中创建一个自定义编解码器。我已经创建了编解码器,它在应用程序中工作,但是当我将编解码器添加到我的控制器单元测试中时,如本教程所示,它会失败。这是我得到的消息,当我跑“的Grails测试应用UserController的〜部”:Groovy/Grails单元测试错误与自定义编解码器

“没有这样的属性:SHACodec类:racetrack.UserControllerTests”

我已经使用loadCodec()方法来尝试包括编解码器,但得到了相同的消息。

有没有人有任何建议如何解决这个单元测试问题?如果是导入问题,如果SHACodec.groovy文件位于/ grails-app/utils /目录中,导入路径是什么?

我的教程代码可在http://arlitt.com/racetrack.zip下载。

回答

1

我就遇到了这个太(通过代码在Grails的书工作)。

我发现的作品是这样的:显式加载编解码器。您无需将其包含在您的导入中。确保SHACodec.groovy文件位于grails-app/utils目录中。

以下代码片段显示了我是如何做到的。

class UserControllerTests extends ControllerUnitTestCase{ 
    protected void setUp() { 
     super.setUp() 

     loadCodec (org.codehaus.groovy.grails.plugins.codecs.Base64Codec) 
     loadCodec (racetrack.SHACodec) 
    } 
    // ... 
}