実行時に評価される SQL があります。
SQL = "SELECT DISTINCT USER_ID FROM USER_DB WHERE USER_DB_ID = ${ -> this._session.usr_id}"
この SQL はConfigSlurper
、GEB ページ モジュールのプロパティ ファイルを介して読み取られます。
slurper = new ConfigSlurper()
def props = slurper.parse(getClass().getClassLoader().getResource(currentPageProperties))
propValue = props.SQL[propKey]
dbRows = _db.rows(propValue.toString())
これを実行すると、$ はページ情報を取得して取得する GEB $ に置き換えられるvalue = [:]
ため、SQL は失敗します。
上記で参照した値は、GSTRING 置換の出力です -
"SELECT DISTINCT USER_ID FROM USER_DB WHERE USER_DB_ID = [:]"
私はこれ全体をコンテンツ内に置き、チェッカーでチェックインを行っています
static content = {
verifyElements { ... } }
デバッグを行うと、${} が BrowsePage.groovy のような GEB ページに置き換えられることがわかりました。これは、GEB の $() では通常のことです。
それを修正する方法はありますか?