我在magento模块中使用了一些非常基本的单元测试,并且不想使用magento的两个主要测试模块/框架中的任何一个。
我的问题虽然相对简单。在单元测试中,我如何加载产品以检查它是否具有特定属性并且该值不为空?
在我的测试中,我已经初始化了 Mage,但由于该模块可能用于不同的项目,因此我无法真正硬编码要加载的产品 ID。
那么,如何实现呢?
到目前为止,我能想到的最好的方法是加载一个完整的产品集合并遍历每个检查所需的属性。
我在magento模块中使用了一些非常基本的单元测试,并且不想使用magento的两个主要测试模块/框架中的任何一个。
我的问题虽然相对简单。在单元测试中,我如何加载产品以检查它是否具有特定属性并且该值不为空?
在我的测试中,我已经初始化了 Mage,但由于该模块可能用于不同的项目,因此我无法真正硬编码要加载的产品 ID。
那么,如何实现呢?
到目前为止,我能想到的最好的方法是加载一个完整的产品集合并遍历每个检查所需的属性。
您最好的选择是在事务中创建一个产品,然后在获得单元测试结果后将事务回滚。
至少我尝试了类似于你正在做的事情,结果是这样的:
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();
}
祝你好运!