【问题标题】:Groovy/Grails Unit Test Error with custom codec使用自定义编解码器的 Groovy/Grails 单元测试错误
【发布时间】:2011-03-15 17:16:00
【问题描述】:

我对 Grails 网站上的“Grails 入门”教程有疑问。它让我在 utils 目录中创建一个自定义编解码器。我已经创建了编解码器并且它在应用程序中工作,但是当我将编解码器添加到我的控制器单元测试时,正如教程所建议的那样,它失败了。这是我在运行“grails test-app UserController -unit”时收到的消息:

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

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

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

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

【问题讨论】:

    标签: unit-testing testing grails groovy codec


    【解决方案1】:

    我也遇到过这个问题(研究 Grails 书中的代码)。

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

    以下代码 sn-p 向您展示了我是如何做到的。

    class UserControllerTests extends ControllerUnitTestCase{
        protected void setUp() {
            super.setUp()
    
            loadCodec (org.codehaus.groovy.grails.plugins.codecs.Base64Codec)
            loadCodec (racetrack.SHACodec)
        }
        // ...
    }
    

    【讨论】:

      【解决方案2】:

      编解码器不会自动加载,您需要加载它们。

      更多详情请参考这篇文章:http://kousenit.wordpress.com/2010/02/24/using-a-codec-in-a-grails-unit-test/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-04-12
        • 1970-01-01
        • 2011-11-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多