gpt4 book ai didi

PHPUnit:测试数据库时出现问题

转载 作者:行者123 更新时间:2023-11-29 13:37:29 24 4
gpt4 key购买 nike

我刚开始使用 PhpUnit 进行数据库测试。我从比较 PostgreSQL 表的内容与 xml 文件的简单测试开始。

问题是断言没有按预期工作:

请看结果:

http://www3.picturepush.com/photo/a/5540556/1024/Anonymous/Screenshot.png

如您所见,表是相等的,但数据库表中的内容(屏幕上的第一个)有一个额外的空格...

我不知道哪里出了问题。

这是 PHP 代码:

public function testGetSourceData()
{
include_once(
sfConfig::get('sf_lib_dir')
. '/task/ShopCategoryTreeUpdateTask.class.php'
);

$method = new ReflectionMethod(
'ShopCategoryTreeUpdateTask', '_getSourceData'
);

$method->setAccessible(TRUE);

$res = $method->invoke(new ShopCategoryTreeUpdateTask(new sfEventDispatcher, new sfFormatter),123);

$actual = new PHPUnit_Extensions_Database_DataSet_QueryDataSet($this->getConnection());
$actual->addTable('shop');

$expected = $this->getDataSet();

$this->assertDataSetsEqual(
$actual,
$expected
);

}

这里是 XML: http://pastebin.com/5MmtJDr6

感谢任何目标!

最佳答案

我认为你可能把测试复杂化了。在您的方法中,QueryDataSet 和 getDataSet 可能将结果呈现为不同的字符串。

您实际上不应该通过反射来测试私有(private)和公共(public)方法,因为这些方法应该可以通过您的公共(public)方法进行测试和访问。如果它们不能通过公共(public)方法访问,那么它们将永远无法被调用。您的代码覆盖率报告在这里派上用场。

关于PHPUnit:测试数据库时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5801297/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com