私は、ややユニークな方法でデータベースに接続するPHP(Zend Framework 1.12.1)アプリケーションに取り組んでいます。
基本的に、私にとって「ブラックボックス」であるOracleデータベースがあります。行またはテーブルを直接選択、更新、挿入、または削除する権限がありません。データベースビューへのアクセスのみが許可されており(選択のみ)、データを挿入/更新/削除する場合は、1つ以上のストアドプロシージャを呼び出す必要があります。実際のテーブル構造が何であるかはわかりません。また、誰も私にアクセスを許可することはないと思います。
ZFは、アプリケーションがデータベースで完全な特権を持っていると想定しているように見えるため、これらすべてにより、モデルの単体テストが非常に困難になります(モデルの記述は言うまでもありません)。(これが、これまでモデルの手動テストのみを行った理由であり、モデルはやや珍しいものです。)
私のアプリケーションは動作しますが、手動テストにうんざりしています。
他の誰かが以前にこの状況にあったことがありますか?データベース権限が制限されている環境で自動PHPUnitテストを実装するための具体的な手順をお勧めしますか?私はすでにdbadminに、というストアドプロシージャを提供するように依頼しましたresetTestData()
。これにより、毎回一貫した状態からテストを実行できるようになりますが、ZFではそのストアドプロシージャを使用してテストすることはできません。 /または分解します。どうやら、各テストの前にデータセットをZend_Test_PHPUnit_DatabaseTestCase
試行し、データを取得してデータベースに再入力するためにtruncate
呼び出します。getDataSet()
回避策?