0
我是Xtend和單元測試的新手。 我正在測試我的語法,我想寫一個測試它的驗證測試。Xtext:結合測試和驗證
這裏一個簡單的例子:
MyGrammar:
Domainmodel: entities+=Entity* ;
Entity:
'ENTITY' name=ID 'END_ENTITY';
現在假設我也插入這個驗證規則:
@Check
public void checkNoJack(Entity e){
if (e.getName().equals("Jack")){
error("This name is not valid.",null);
}
}
所以,如果我嘗試寫:
ENTITY Jack END_ENTITY
I會收到一個錯誤。
但是,如果我嘗試這樣的Xtend測試:
@Test
def void example() throws Exception{
parserHelper.parse("ENTITY Jack END_ENTITY")
}
一切都會去的權利。
如何在我的測試中考慮驗證規則?
UPDATE:名稱正確解析:
@Test
def void example() throws Exception{
val model = parserHelper.parse("ENTITY John END_ENTITY");
val entity=model.entities.get(0);
assertEquals(entity.name, "John");
}
@Test
def void example2() throws Exception{
val model = parserHelper.parse("ENTITY Jack END_ENTITY");
val entity=model.entities.get(0);
assertEquals(entity.name, "Jack");
}
是的,名稱解析正確(請參閱第一篇文章的更新)。 –