Magento单元测试如何模拟/加载/使用产品

Mar*_*ace 5 php phpunit unit-testing magento

我在magento模块中使用了一些非常基本的单元测试,并且不想对magento使用两个主要的测试模块/框架中的任何一个。

我的问题相对简单。在单元测试中,我如何加载产品以检查其是否具有特定属性并且该值不为null?

在我的测试中,我已经初始化了Mage,但是由于该模块可能用于不同的项目中,因此我实际上无法硬编码要加载的产品ID。

那么,如何实现呢?

到目前为止,我能想到的最好的办法是加载完整的产品集合,并在每次检查所需属性时进行迭代。

Set*_*aki 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();
}
Run Code Online (Sandbox Code Playgroud)

祝你好运!