Magento の単体テストに phpunit と ecomdev モジュールを使用しています。特定のクラスでは、テストする必要がある最後のコードは、try/catch でモデルを保存しようとしたときの例外です。例外に到達する唯一の方法は、データベースを一時的に変更することです。そのため、機能するテーブル名を変更しましたが、名前を元に戻す必要があります。テスト自体が失敗した場合、私は一貫性のない状態になります。
そのコードをテストして、カバレッジが 100% になるようにしたいと思っています。そうでなければ、コードを見て例外がテストされていないことを思い出すまで、なぜ 98% なのか疑問に思うでしょう。
接続を閉じようとしましたが、例外をログに記録する必要があります。そのため、保存時に例外を発生させるために、モデルまたはリソース モデルに対して一時的にできることがあるのだろうかと考えています。次のロードでリセットされるもの。
1 つのメモ - とにかく、データを操作すると例外が発生することがわかりません。繰り返しになりますが、本番環境で例外が発生する唯一のシナリオは、データベース接続が失われた場合です。
何か案は?
編集: サンプルコード:
public function logStuff($stuff){
try{
Mage::getModel('my/stuff')
->setData('stuff', $stuff)
->save();
}catch(Exception $e){
Mage::helper('log/error')->logError(__METHOD__, "Could not save stuff: ". $e->getMessage());
}
}