扩展另一个类的测试类(PHPUNIT)
我在phpUnit测试中遇到问题,我有扩展另一个类的测试类(PHPUNIT),php,unit-testing,phpunit,Php,Unit Testing,Phpunit,我在phpUnit测试中遇到问题,我有“class\u A扩展class\u B” 我不知道如何测试,我试着像这样模仿b类 $this-> mock = $this-> getmock('class_A',array('Class_B')); 但是当我运行测试时,测试失败并返回 类_b::_构造()缺少参数1 有人知道我怎么做吗 (如果我的英语很糟糕,很抱歉!!)您可以禁用构造函数,如下所述: 我想这就是你想要的: (见:) 编辑:如果只想测试继承,请在构造函数中使用任何有效参数
“class\u A扩展class\u B”
我不知道如何测试,我试着像这样模仿b类
$this-> mock = $this-> getmock('class_A',array('Class_B'));
但是当我运行测试时,测试失败并返回
类_b::_构造()缺少参数1
有人知道我怎么做吗
(如果我的英语很糟糕,很抱歉!!)您可以禁用构造函数,如下所述:
我想这就是你想要的: (见:)
编辑:如果只想测试继承,请在构造函数中使用任何有效参数。我测试类是否正确继承,父函数是否存在
protected $TestObject;
protected function setUp()
{
$this->TestObject = new MyLib\Class_B; // Namespaces being used?
}
public function testClassInstance()
{
$this->assertInstanceOf('MyLib\Class_A', $this->TestObject);
$this->assertInstanceOf('MyLib\Class_B', $this->TestObject);
}
// For Instance: These are from the Class A that was extended
public function testClassAWorks()
{
$this->assertEquals('String', $this->TestObject->GetString(), 'Ensure the Class_A inherited function is returning String');
$this->assertFalse($this->TestObject->IsFalseFunction());
}
// These are from the Class B
public function testClassBWorks()
{
$this->assertEquals('Number', $this->TestObject->GetString2(), 'Ensure the Class_B function is returning Number');
$this->assertTrue($this->TestObject->IsTrueFunction());
}
我必须测试类A,但当我试图测试它时,类b要求他的构造函数的参数,我想模拟类b,因为我不需要测试类A的方法(我在phpunit中是新手,在php中也是),我需要测试类A,但类b要求他的参数,我不知道如何模拟类b,或者我必须为类b做些什么,不会干扰测试,在这种情况下,我必须做:$mocking=newclass_a($mock,$mock_参数_2);为了模拟B班,这样我就可以测试我的A班了,谢谢大家!!
protected $TestObject;
protected function setUp()
{
$this->TestObject = new MyLib\Class_B; // Namespaces being used?
}
public function testClassInstance()
{
$this->assertInstanceOf('MyLib\Class_A', $this->TestObject);
$this->assertInstanceOf('MyLib\Class_B', $this->TestObject);
}
// For Instance: These are from the Class A that was extended
public function testClassAWorks()
{
$this->assertEquals('String', $this->TestObject->GetString(), 'Ensure the Class_A inherited function is returning String');
$this->assertFalse($this->TestObject->IsFalseFunction());
}
// These are from the Class B
public function testClassBWorks()
{
$this->assertEquals('Number', $this->TestObject->GetString2(), 'Ensure the Class_B function is returning Number');
$this->assertTrue($this->TestObject->IsTrueFunction());
}