测试某些内容无法在Xtext中解析

时间:2012-10-03 06:54:17

标签: xtext

我有以下语法:

grammar ru.focusmedia.fire.idl.IDL with org.eclipse.xtext.xbase.Xbase

generate idl "http://www.focusmedia.ru/fire/idl/IDL"

Model:
    'package' package=QualifiedName
    imports+=Import*
    typeDefs+=TypeDef+;

...

因此字符串asd应该无法解析,就像任何不以package开头的情况一样。我希望ParseHelper.parse("asd")抛出异常或返回null,但它没有。我如何识别解析失败?

2 个答案:

答案 0 :(得分:3)

您可以通过Resource#getErrors查询包含错误解析结果的资源。像resultFromParseHelper.eResource().getErrors()这样的东西应该可以解决问题。

使用junit:

Assert.assertEquals(result.eResource().getErrors().toString,0,result.eResource().getErrors().size)

答案 1 :(得分:0)

另一种选择是使用ValidationTestHelper