0

最近、Grails1.3.7からGrails2.0.1にアップグレードしました。アプリケーションは正常に実行されますが、テストをクリーンアップするときにこの問題が発生します。

私のテストはすべてスポックテストです。そして、アップグレード時にスポックを0.5-groovy-1.7から0.6に更新しました。

redirect()の行に到達するすべてのコントローラーテストは、同じエラーでその行で失敗します。

No bean named 'grailsLinkGenerator' is defined
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'grailsLinkGenerator' is defined

これを引き起こす原因と、それらを修正する方法はありますか?

4

1 に答える 1

0

これは、spock の ControllerSpec を拡張することにより、コントローラーの単体テストで発生し始めました。spock.lang.Specification を拡張するために元に戻すと、修正されました。

仕様:

package fileupload2

import static org.junit.Assert.assertThat
import static org.hamcrest.core.Is.is

import spock.lang.Specification;

import grails.test.mixin.TestFor
import grails.plugin.spock.ControllerSpec

@TestFor(FileUploadController)
//class FileUploadControllerSpec extends ControllerSpec {
class FileUploadControllerSpec extends Specification {

    def "the index should redirect to create" () {

        when:
            controller.index()

        then:
            assertThat(response.redirectedUrl, is('/fileUpload/create'))
    }

}

カット:

package fileupload2

class FileUploadController {

    def fileUploadService

    def index() {
        redirect (action: "create")
    }

    def create() {
        render(view: 'create')
    }

    def upload() {
        ... 
    }

}

私はこれに約2週間かかっているので、これがバグだとは言いたくない.

UnitSpec の拡張も機能するようです。

于 2012-03-29T17:37:04.637 に答える