私はXtendとユニットテストの世界の初心者です。文法をテストしていますが、その検証をテストするテストを作成したいと思います。
ここに簡単な例があります:
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
エラーが発生します。
しかし、このXtendテストを試してみると:
@Test
def void example() throws Exception{
parserHelper.parse("ENTITY Jack END_ENTITY")
}
すべてがうまくいくでしょう。
テストで検証ルールを検討するにはどうすればよいですか?
更新:名前が正しく解析されました:
@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");
}