模拟和功能拆分为Php数据库单元测试

时间:2014-03-27 17:03:03

标签: php database unit-testing mocking dataset

对单元测试和&&和嘲弄。 我写了一个类“DataStorage”,通常的查询看起来像:

/**
 * @param array $productArray
 */
public function setProductAttributesByProductIds(array $productIdsArray)
{
    $productIdsString = implode(',', $productIdsArray);

    $con = Propel::getConnection();
    $query = $con->prepare(   ... QUERY ..... )
    $query->execute();

    $attributes = $query->fetchAll();

    ___DO SOMETHING WITH DATA___

    return $productArray;
}

我建议的方法:

  1. 提取函数fetchData()。然后进行单元测试,只需用数据进行模拟。
  2. 使用PHPUnit_Extensions_Database_DataSet_YamlDataSet。使用受控数据模拟数据库表。然后是unittest
  3. 两者都做。拆分功能,如选项1(清洁代码方法)中所述,并使用DataSet进行模拟数据。
  4. 问题是:您认为哪一种方法最好?

0 个答案:

没有答案