コントローラーの単体テスト中に問題が発生しました。リクエストをテストしようとすると、テストが誤って間違ったメソッドに誘導されます。以下の例は、問題を明確に示しています。
親コントローラー
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)
これは、エンドポイントとして公開されていないため、アプリケーションの実行中に実行すると完全に機能します。実行するメソッドを指定する方法はありますか?