主要方法:
public static void main(String[] args) throws Exception
{
if (args.length != EXPECTED_NUMBER_OF_ARGUMENTS)
{
System.err.println("Usage - java XFRCompiler ConfigXML PackageXML XFR");
}
String configXML = args[0];
String packageXML = args[1];
String xfr = args[2];
AutoConfigCompiler compiler = new AutoConfigCompiler();
compiler.setConfigDocument(loadDocument(configXML));
compiler.setPackageInfoDoc(loadDocument(packageXML));
// compiler.setVisiblityDoc(loadDocument("VisibilityFilter.xml"));
compiler.compileModel(xfr);
}
private static Document loadDocument(String fileName) throws Exception
{
TXDOMParser parser = (TXDOMParser) ParserFactory.makeParser(TXDOMParser.class.getName());
InputSource source = new InputSource(new FileInputStream(fileName));
parser.parse(source);
return parser.getDocument();
}
测试用例:
@Test
public void testCompileModel() throws Exception
{
// construct parameters
URL configFile = Thread.currentThread().getContextClassLoader().getResource("Ford_2008_Mustang_Config.xml");
URL packageFile = Thread.currentThread().getContextClassLoader().getResource("Ford_2008_Mustang_Package.xml");
File tmpFile = new File("Ford_2008_Mustang_tmp.xfr");
if(!tmpFile.exists()) {
tmpFile.createNewFile();
}
String[] args = new String[]{configFile.getPath(),packageFile.getPath(),tmpFile.getPath()};
try {
// test main method
XFRCompiler.main(args);
} catch (Exception e) {
assertTrue(true);
}
try {
// test args length is less than 3
XFRCompiler.main(new String[]{"",""});
} catch (Exception e) {
//ignore
}
tmpFile.delete();
}
覆盖范围输出显示为main方法中String configXML = args[0];
的行
不包括在内。
答案 0 :(得分:4)
assertTrue(true);
是无意义的无操作XFRCompiler.main(args);
周围的try / catch,因为它所做的只是吞下激活并使调试更难;很可能你会看到一个异常,告诉你问题出在哪里。fail()
之后应该调用XFRCompiler.main(new String[]{"",""});
,因为您希望它会引发异常答案 1 :(得分:2)
我很担心所有assertTrue(true)
。如果不存在异常,则不需要断言。如果出现意外异常,那么此代码将吞下它,您将获得您现在看到的行为。
然后,如果你期望一个异常,你应该像这样编码:
try {
... code that will throw an exception ...
fail("No exception was thrown");
} catch (SpecficTypeOfException e) {
assertEquals("message", e.getMessage());
}
这样,将检查错误类型的异常和异常消息。
PS:不要发布“紧急”问题。我们已尽快提供帮助。