0

コントローラーの単体テスト中に問題が発生しました。リクエストをテストしようとすると、テストが誤って間違ったメソッドに誘導されます。以下の例は、問題を明確に示しています。

親コントローラー

class ExampleParentController {

    def someMethod = {
        render "FALSE"
    }

    def someMethod(def object)
    {
        render "DEFINITELY FALSE"
    }
}

子コントローラー

class ExampleChildController extends ExampleParentController {

    def someMethod = {
        render "TRUE"
    }
}

テストクラス

class ExampleChildControllerTests extends ControllerUnitTestCase {

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

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

    void testSomeMethod() {
        controller.someMethod()
        def result = controller.response.contentAsString
        assertEquals ("TRUE", result)
    }
}

controller.someMethod()それが「TRUE」になると思います。someMethod(def object)これは、エンドポイントとして公開されていないため、アプリケーションの実行中に実行すると完全に機能します。実行するメソッドを指定する方法はありますか?

4

0 に答える 0