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

前もって感謝します...

デビッド。

ps。非常に一般的なエラーを使用してキャプチャすることを検討しましたが、これまたは他のJDBC / SQL tyeエラーが必要ですが、いずれも機能せず、メッセージはのいずれからも送信されていないようです。

D

4

1 に答える 1

0

これが私の解決策です...

それほどエレガントではないかもしれませんが、コードが失敗する理由を私(または同じ状況のユーザー)に理解させるのに役立ちます。

考えられる原因を示すログ出力メッセージを設定しただけです。

の線に沿って何か...

指定されたDBに接続できません。これは、ファイル名(またはパス)が正しくないか、その他の奇妙なSQLの問題である可能性があります(埋め込みDBを使用している場合は、現在別のユーザーが開いているファイルです)。ファイルへのパスと、データベース上のロックファイルの存在(または存在しない)を確認します。

少なくともそれは私に何が起こっているのかについての考えを与えてくれます...私はそうでなければ私自身の考案のそれに対して奇妙なエラー番号を設定することができたと思います;)

デビッド

于 2012-08-13T07:35:51.670 に答える