假设我在 /var/www/project/calculator.class.php
这是类
namespace App/Module/Calculator;
abstract class calculator{
static property $add;
static property $result;
function add($val_a, $val_b){
return $a + $b;
}
}
我想为上面的类创建一个测试用例,但似乎无法测试它。我停留在最基本的阶段。
require '/var/www/project/calculator.class.php';
class CalculatorTest extends \PHPUnit_Framework_TestCase {
public function testAbstactDatabaseClassExists()
{
$this->assertEquals(is_object('Database'), 1);
$this->assertEquals(true, in_array('Calculator', get_declared_classes()));
}
}
无论我做什么,似乎都没有办法测试类(class)及其内容。
有人知道吗?
最佳答案
测试抽象类时,可以使用PHPUnit的Mock特性。添加方法的示例如下:
public function testAdd() {
/* @var $calculator \App\Module\Calculator\calculator|\PHPUnit_Framework_MockObject_MockObject */
$calculator = $this
->getMockBuilder('App\Module\Calculator\calculator')
->getMockForAbstractClass();
$result = $calculator->add(13, 29);
$this->assertEquals(42, $result);
}
有关 Mocking 的更多信息,请参阅 PHPUnit manual .
关于php - 如何使用 PHPunit 测试抽象类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24099338/