ホームページ  >  に質問  >  本文

php-unitでMage::getSingleton('checkout/cart')をモックする方法は?

この foo() メソッドがあり、Magento でこのメソッド testFoo() の単体テスト ケースを追加する必要があります。ただし、Mage::getSingleton('checkout/cart') はシミュレートできません。

ソースメソッド

リーリー

テスト関数

リーリー

実行すると、php-unit がこのエラー ログを受け取ります。

リーリー

Mage::getSingleton('checkout/cart') をシミュレートする方法、いくつかの解決策が必要です。

: main メソッドはレガシー コードであるため、変更できません。単体テスト ケースを追加するだけです。

P粉244730625P粉244730625222日前473

全員に返信(1)返信します

  • P粉588152636

    P粉5881526362024-04-04 11:05:45

    Mage::getSingleton('checkout/cart') はグローバル名前空間の静的関数であるため、モックすることはできません。

    ただし、チェックアウト カード シミュレーションを挿入することで、

    メタプログラミング を使用してシミュレーションを挿入できます。次に、その場所に元のシングルトンを復元します。

    EComDev Testsuite から継承された既存の Q&A と比較してください。この Q&A には、

    PHP Reflection を使用して内部構造を処理する方法に関する詳細なヒントが含まれています。

    返事
    0
  • キャンセル返事