我有一个类的形式是这样的:如何测试一个类的构造函数带有一些参数的方法?
class A{
public function __constructor(classB b , classC c){
//
}
public function getSum(var1, var2){
return var1+var2;
}
}
我的测试用例类是这样的:
use A;
class ATest extends PHPUnit_Framework_TestCase{
public function testGetSum{
$a = new A();
$this->assertEquals(3, $a->getSum(1,2));
}
}
然而,当我运行PHPUnit的,它抛出像一些错误:
Missing argument 1 for \..\::__construct(), called in /../A.php on line 5
即使我提供的参数,它会抛出相同的错误,但在不同的文件。
说,我通过实例 $a = new A(new classB(), new classC());
然后,我得到同样的错误CLASSB的构造函数(CLASSB的构造函数有类似的形式到A的)。
Missing argument 1 for \..\::__construct(), called in /../B.php on line 10
是否有任何其他的方式,我可以测试我丢失的功能什么的。
我不想通过使用模拟(getMockBuilder(),setMethods(),getMock())进行测试,因为它似乎违背了单元测试的全部目的。
PHPUnit的 – Eli
的设置方法试试吧“即使我提供了参数,也会引发错误。“它不应该。在PHPunit类中创建对象应该与在其他地方创建对象没有区别。你的问题听起来像是对象的构造函数本身,而不是PHPunit。 –
@WillemRenzema,我也有同感。但无法解决它。 – sunil