【发布时间】:2016-05-06 14:56:30
【问题描述】:
继续我使用here 的相同示例:
我现在想在我的子类中测试受保护方法的实现。
因为我在对抽象类的测试中将它们存根,所以实现本身没有经过测试。
但是受保护的方法没有被正常测试,所以我想听听你关于如何测试它们的建议。
就像my other thread 一样,我想在不重构我的代码的情况下解决这个问题。
父类:
abstract class Order
{
public function __construct( $orderId, User $user )
{
$this->id = $this->findOrderId( $user->getId(), $orderId );
if ($this->id !== false) {
$this->setOrderData();
}
}
abstract protected function findOrderId( $userId, $orderIdToSearch );
private function setOrderData()
{
...
}
}
要测试的子类:
public class OrderTypeA extends Order
{
protected function findOrderId($userId, $orderId)
{
...
}
}
测试代码:
class OrderTypeATest extends PHPUnit_Framework_TestCase
{
public function testFindOrderId() {
???
}
}
【问题讨论】:
标签: php unit-testing phpunit abstract-class