5

私はmagentoモジュールでいくつかの非常に基本的な単体テストを使用していますが、magentoの2つの主要なテストモジュール/フレームワークのいずれも使用したくありません。

しかし、私の質問は比較的単純です。単体テストでは、製品をロードして、特定のプロパティがあり、値がnullでないことを確認するにはどうすればよいですか?

私のテストでは、Mageを初期化しましたが、モジュールはさまざまなプロジェクトで使用される可能性があるため、ロードする製品IDを実際にハードコーディングすることはできません。

では、これはどのように達成できますか?

これまでに思いついた最善の方法は、完全な製品コレクションをロードし、必要な属性のチェックを繰り返すことです。

4

1 に答える 1

0

最善の策は、トランザクション内で製品を作成し、単体テストの結果を取得した後でトランザクションをロールバックすることです。

少なくとも、私はあなたがしていることに似た何かを試みました、そして次のようなものになりました:

try {
    $write = Mage::getSingleton('core/resource')->getConnection('core_write');
    $write->beginTransaction();

// 1. create your product
// 2. test it. 
// 3. important: Throw an exception with the test results for example:
//               throw new Exception("Test <{$testName}> : {$result}"); 
// NOTE: Throwing the exception is important to end this with a rollback, always.

    $write->commit();
} catch (Exception $e) {
    mage::log(__METHOD__ . ':' . __LINE__ . ": {$e->getMessage()}");
    $write->rollback();
}

幸運を!

于 2012-12-24T13:52:29.717 に答える