私はGHUnitでユニットテストを書いています。別のアプリのライブラリディレクトリ内のキャッシュディレクトリにファイルが生成されているかどうかを確認したいと思います。これは実行可能ですか、それともアプリが互いのライブラリディレクトリにアクセスできないようになっていますか?もしそうなら、これの単体テストを作成するための可能な回避策はありますか?生成されたファイルをドキュメントなどの別のディレクトリに保存できますか、それとも役に立ちませんか?
4 に答える
デバイスでは、それはまったく不可能です。シミュレーターでは、アプリケーションがインストールされているディレクトリに名前を付けるランダムなUUIDがわかっていれば、理論的にはそれを実行できます。
しかし、私はあなたが試みることさえも強く思いとどまらせます。代わりに、テストしようとしているコードを、テスト可能であるために十分に自立させてください。別のアプリケーションが動作するかどうかを検証する単体テストは、それ自体では、正しい引数を使用してAPIを呼び出すことを検証する単体テストとほぼ同じくらい役に立ちません。
アプリは、サンドボックス内の独自のフォルダーにのみアクセスできます。単体テストアプリは、キャッシュの内容を確認するアプリとは別のものですか?
いいえ、あなたがする必要があるのは、URLプレフィックスを使用し、インストール時にそのアプリケーションによって登録された必要なことをすべて実行するメソッドを用意することです。
ユニットテストを試みているコンテキストがわからないので、私の答えは間違っているかもしれませんが、GHUnitは別のアプリとして構築されているため、他のアプリにアクセスしたいというのがわかります。
これを行う理由はないはずです-サンドボックスの問題を打ち負かす代わりに、問題全体を回避しましょう。
テスト対象のアプリから最初にテストしようとしているキャッシュ作成コードを実行してから、バンドルのLibary / Cacheディレクトリを確認してみませんか?
そこにあるべきはそれだけです。