我编写了一个java程序,它从.csv中提取数据,并将这些数据转换为RDFXML。我在编写这个程序时使用了sesame's框架,程序成功完成了编写的工作。
但是,我试图使用jUnit对这个程序进行单元测试,我需要测试一个将RDF三元组(以乌龟格式)转换为RDFXML的方法。为了证明该方法正常工作,我想通过将RDFXML转换回三元组并将它们与我传入方法的原始三元组进行比较来实现。到目前为止,我还没有在sesame's文档中找到任何内容。有什么建议吗?
答案 0 :(得分:1)
几分钟前我刚解决了这个问题。这是我的解决方案:
@Test
public void testWriteStmtToRDFPos(){
RDFParser parser = new RDFXMLParser();
String baseURI = "";
Model origStmts = new LinkedHashModel();
Model processedStmts = new LinkedHashModel();
StatementCollector collector = new StatementCollector(processedStmts);
parser.setRDFHandler(collector);
origStmts.add(sexOffend,predicate,object);
try{
converter.writeStmtToRDF(origStmts, rdfFile);
FileReader reader = new FileReader(rdfFile);
parser.parse(reader, baseURI);
if(origStmts.equals(processedStmts)){
assert(true);
}
}catch(FileNotFoundException e){
e.printStackTrace();
fail();
}catch(Exception e){
e.printStackTrace();
fail();
}
}
当您为上面的解析器设置收集器时,它只是收集解析器提取的任何语句。执行此操作后,您可以将收集器与origStmts进行比较。这并不是很明显,但在找到之后确实非常有用!