如何单元测试数据库功能? (Doctrine2)

时间:2016-02-28 10:29:45

标签: php unit-testing testing doctrine-orm

我可能不理解测试的概念。 这是一个功能:

$qb->select('u')
   ->from('User', 'u')
   ->where('u.id = ?1')
   ->orderBy('u.name', 'ASC');

然后“非常”容易编写模拟,替换,期望参数,期望结果等等。这也与数据库分离(不需要真正的数据库)。

但如果我错过订购怎么办?我仍然可以为它编写一个很好的测试,而不确定它是否真的有效。 另一个例子:

function add($a, $b)
{
    return $a-$b;
}

我们想象的测试:

function testAdd()
{
    $a = 1;
    $b = 4;

    $mock = $this->getMock(test);
    $mock->expects($a)->once()->with(1);
    $mock->expects($b)->once()->with(4);

    $this->assertEquals (-4324,534, add($a, $b);
}

这个(虚构的)测试类似于上面的数据库测试。让我们采取一些参数,期望它们运行一次,并产生假值。但实际上,我仍然不知道我的“添加”方法效果很好。

0 个答案:

没有答案