Heim > Fragen und Antworten > Hauptteil
Ich habe diese foo()-Methode und muss einen Unit-Testfall für diese Methode testFoo() in Magento hinzufügen. Aber Mage::getSingleton('checkout/cart') kann nicht simuliert werden.
Quellenmethode
1 2 3 4 |
|
Testfunktion
1 2 3 4 5 6 7 8 9 10 11 12 |
|
Wenn ich php-unit ausführe, erhalte ich dieses Fehlerprotokoll.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
|
Benötigen Sie eine Lösung, wie Sie Mage::getSingleton('checkout/cart') simulieren können.
Hinweis: Ich kann die Hauptmethode nicht ändern, da es sich um Legacy-Code handelt. Fügen Sie einfach Unit-Testfälle hinzu.
P粉5881526362024-04-04 11:05:45
您不能模拟 Mage::getSingleton('checkout/cart')
,因为它是全局命名空间中的静态函数。
但是,您可以使用元编程注入结账卡模拟来注入模拟。然后在该位置恢复原来的单例。
与继承自 EComDev Testsuite 的现有问答进行比较,该问答应该具有更多指针如何使用 PHP Reflection 处理内部结构。