0

我正在为我的代码编写一组测试场景,目前我遇到了一个不是失败的失败。

让我解释。我正在测试将不正确的文件路径插入到类构造函数中的场景。

这应该会引发连接错误或找不到文件类型错误,但实际上会引发错误

[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+";";

提前致谢...

大卫。

附言。我考虑过使用一个非常普遍的错误来捕获,但是想要这个,或者其他一些 JDBC/SQL 类型的错误,但是它们都不起作用,消息似乎不是来自任何一个。

D

4

1 回答 1

0

这是我的解决方案...

它可能不是非常优雅,但它有助于让我(或处于相同情况的用户)了解代码可能失败的原因。

我只是设置了一条日志输出消息,说明了可能的原因。

类似于...的东西

无法连接到指定的数据库。这可能是不正确的文件名(或路径)或其他一些奇怪的 SQL 问题(如果使用嵌入式数据库,则该文件当前是由另一个用户打开的)。确认文件的路径以及数据库上是否存在(或不存在)锁定文件。

至少它让我知道发生了什么......我想我可以用我自己的设计来设置一个奇怪的错误号;)

大卫

于 2012-08-13T07:35:51.670 回答