У меня есть этот странный белый пробел, и я собираюсь его протестировать. Сейчас грамматика проста (база на терминалах)Xtext: Тестирование пробелов - отсутствует RULE_BEGIN в JUnit
Model:
{Model}
BEGIN
package=PackageDeclaration?
class=ClassDeclaration?
END
methods+=MethodDeclaration*
;
PackageDeclaration: 'package' name=ID;
ClassDeclaration: 'class' name=ID;
MethodDeclaration: 'def' name=ID;
terminal BEGIN:
'synthetic:BEGIN';
terminal END:
'synthetic:END';
И теперь, когда дело доходит до JUnit:
@Test
def void packageSimpleNoErrors() {
val result = '''
package testPack
'''.parse
// Parsed without errors
result.assertNoErrors
}
Multiline строка 2x новая строка, вкладка 'пакет testPack' и новая линия. Проверено с помощью метода debug in parse.
Если я так выразился в редакторе Eclipse, это совершенно нормально, никаких проблем. Но я не могу сделать JUnit, чтобы пройти этот тест:
java.lang.AssertionError: Expected no errors,
but got :ERROR (org.eclipse.xtext.diagnostics.Diagnostic.Syntax)
'missing RULE_BEGIN at 'package’’ on PackageDeclaration,
ERROR (org.eclipse.xtext.diagnostics.Diagnostic.Syntax)
'mismatched input '<EOF>' expecting RULE_END' on Model
На данный момент это не шоу Stoper в остальной части теста по этому коду смотрят хорошо, но я предпочитаю иметь их все зеленые :)
Thanks
Спасибо, это решило мою проблему :) Но я надеюсь, что это не предпочтительное долгосрочное решение в Xtext. –