パラメータを取るANTLRのパーサルールがあります。GUnitのパーサルールへのパラメータの受け渡し
tincture [Tinctures tinctures] returns [Tincture tincture]
: { String tinctureName = ""; }
( COLOUR { tinctureName = $COLOUR.text; }
| METAL { tinctureName = $METAL.text; }
| FUR { tinctureName = $FUR.text; }
)
{
try {
$tincture = tinctures.getTincture(tinctureName);
} catch (UnknownTinctureException e) {
throw new MyRecognitionException("Unknown tincture found.", e);
}
}
;
どのようにすればこのテストをGUnitに書くことができますか?
私は自分のLexerルールにパラメータを持たないため、正常にテストを書いています。 私は次のように記述した場合、私は「java.lang.NoSuchMethodException:mypackage.BlazonParser.tincture()」を取得私は離れてthisページからGUnit周りはほとんどのドキュメントを見つけることができますが、それはこれをカバーしていない
tincture
: "gules" OK
"sable" OK
"blah" FAIL
を。
私はaunitをすばやく見ていましたが、ドキュメントに欠けていたので、実際に何が起こっていたのかは分かりませんでした。私はあなたが言ったようにANTLRをテストするためにJUnitを使用するかもしれません。ありがとう – luketorjussen