0

次のコードを使用して、ファイル パスと、可能であれば Java が Linux/MacOS/Windows で作成できないファイル名を考案しようとしています。

File directory = new Directory(dir);
directory.mkdirs(); // should always fail and not affect an existing file/dir

File file = new File(dir, filename);
file.createNewFile(); // should always fail and not affect an existing file/dir

この種のパスは単体テストで使用され、特定のエラー条件が正しく処理されていることを証明します。テストが次のように実行されていると仮定しますroot(そうではありませんが、無効なパスに焦点を当てたいと思います)。これまでのところ、私が試したことはすべて、あるプラットフォーム (通常は Windows) では失敗しますが、別のプラットフォーム (通常は Linux) では失敗しません。

提案?

PS。モック オブジェクト、PowerMock などについては知っていますが、実際には、Java のそのままの File クラスを取得して、ディレクトリ/ファイルの作成に失敗させたいだけです。

4

1 に答える 1

0

Linux でファイル名が違法である理由は多数あり (iOS でもおそらく同様の理由があります)、Windows では完全に別の理由があります。何をチェックしますか?Java 関数で不正な名前を処理しようとすると、関数は失敗します。それがあなたがキャッチしたいものである場合は、それぞれに違法な名前を作成します(条件はそれほど単純ではありません). コードがこれをキャッチするかどうかを確認したい場合は、問題をより低いレベルに任せます。作成してみてください。失敗した場合は、文句を言います。

各システムでどの名前が違法かを知りたい場合は、具体的に尋ねたほうがよいでしょう。

于 2013-01-29T23:25:39.017 に答える