Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
扩展另一个类的测试类(PHPUNIT)_Php_Unit Testing_Phpunit - Fatal编程技术网

扩展另一个类的测试类(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 有人知道我怎么做吗 (如果我的英语很糟糕,很抱歉!!)您可以禁用构造函数,如下所述: 我想这就是你想要的: (见:) 编辑:如果只想测试继承,请在构造函数中使用任何有效参数

我在phpUnit测试中遇到问题,我有
“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());
}