脚本宝典收集整理的这篇文章主要介绍了测试 – PHPUnit / DBUnit处理时间戳列,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图使用assertDataSetsEqual来比较插入的实际结果与预期的结果.当然,当我将记录插入带有时间戳的表中时,时间戳字段将填充当前日期/时间.表示预期数据的数据集是静态的,因此时间戳不匹配.
我该如何处理这种情况?我可以使断言忽略时间戳列吗?
PRotected function assertDataSetEquals( $ExpectedXMLFileName,array $options = array()) { $model = (isset($options['model'])) ? $options['model'] : $this->_object; $excludeColumns = (isset($options['excludeColumns'])) ? $options['excludeColumns'] : null; $ds = new Zend_test_PHPUnit_Db_DataSet_DbTableDataSet(); $ds->addTable($model); $dsFiltered = (isset($excludeColumns)) ? $this->filterColumns($model,$ds,$excludeColumns) : $ds; $this->assertDataSetsEqual( $this->createFlatXMLDataSet( APPLICATION_PATH . '/../tests/fixtures/models/' . $ExPEctedXMLFileName . '.xml' ),$dsFiltered ); }
private function filterColumns( $model,$dataSet,$excludeColumns) { $dsFiltered = new PHPUnit_extensions_Database_DataSet_DataSetFilter($dataSet); $dsFiltered->setExcludeColumnsForTable( $model->getName(),$excludeColumns ); return $dsFiltered; }
现在比较两个数据集,同时排除任何列我只是这样做.
$this->assertDataSetEquals( 'TableWithTimestampIWantToIgnoreUpdate',array('excludeColumns'=>array('timestamp','id')) );
这使得测试与具有时间戳列的表对应的模型更加容易/更简洁.
以上是脚本宝典为你收集整理的测试 – PHPUnit / DBUnit处理时间戳列全部内容,希望文章能够帮你解决测试 – PHPUnit / DBUnit处理时间戳列所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。