我正在为我的代码编写一组测试场景,目前我的失败并非失败。
让我解释一下。我正在测试将不正确的文件路径插入类构造函数的情况。
这应该抛出一个连接错误,或者一个文件未找到类型错误,但它实际上会抛出错误
[Microsoft][Pilote ODBC Microsoft Access] '(Inconnu)' n'est pas un chemin d'accès valide.
所以这是预期的,但我的单元测试失败,因为我找不到
的代码@test (expected=microsoft.odbc.error.class)
这是我目前的代码块,所有的想法都非常感激......
//test for a bad file name
@Test (expected=java.sql.SQLException.class)
public void failFileConnect()
{
this.reset();//reset and initialise our temp strings
this.Report = new String();//initialise our report info string.
//this file is imaginary, although it may look similar to the principle connect verstion it is not!
MS_mdb tFile = new MS_mdb("c:\\path\\to\\non\\existant\\file\\will\\fail");
File test = new File(tFile.getSchema());
fail("cannot connect to imaginary file!");
}//end test
在类中,使用此代码初始化连接
schema = s; //the string file name passed into the method
String db = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ="+schema+";";
提前感谢...
大卫。
PS。我已经考虑过使用非常一般的错误来捕获,但是想要这个或者其他一些JDBC / SQL tye错误,但是它们都不起作用,消息似乎不是来自任何一个。
d
答案 0 :(得分:0)
这是我的解决方案......
它可能不是非常优雅,但它有助于让我(或处于相同情况的用户)处理代码可能失败的原因。
我只是设置一个日志输出消息,说明可能的原因。
某些事情......无法连接到指定的数据库。这可能是一个不正确的文件名(或路径)或一些其他奇怪的SQL问题(如果使用嵌入式DB,是当前由另一个用户打开的文件)。确认文件的路径以及数据库中锁定文件的存在(或不存在)。
至少它让我知道发生了什么...我想我可以设置一个奇怪的错误号码来反对我自己的设计;)
大卫