を子プロパティにアクセスできないように、これはユニットテスト(ショートバージョン)のための私の親クラスである:は(子オブジェクト内の親から継承されたメソッドを呼び出す)親クラスで
<?php
class TestCaseAbstract extends PHPUnit_Framework_TestCase
{
protected $_rawPostData;
public function setUp()
{
// ...
}
/**
*
* @dataProvider provider
*/
public function testFoo($rawData)
{
// ...
}
public function provider()
{
return array(
array(''),
array($this->_rawData),
);
}
public function tearDown()
{
// ...
}
}
これは私の子クラス、実際の単位であります私はユニットテストケースの実行時に今
class FooTestCase extends TestCaseAbstract
{
public function setUp()
{
$this->_rawPostData = '<?xml version="1.0"?><request><bogus /></request>';
parent::setUp();
}
}
:テストケース
.phpunit --debug FooTestCase.php
を私はこれを取得:
.
Starting test 'FooTestCase::testFoo with data set #0 ('')'.
.
Starting test 'FooTestCase::testFoo with data set #1 (NULL)'.
.
ご覧のとおり、$ this - > _ rawDataというデータの2番目のユニットテストでは、NULLデータで実行されたと表示されています。私のコードで何が間違っていますか?テストメソッドが保護されたプロパティ$ this - > _ rawDataにアクセスできないようです。
私の継承モデルが台無しにならないことを願います。これは動作し、出力「こんにちは」それが必要として
<?php
class ParentClass
{
protected $_property;
public function getProperty()
{
return $this->_property;
}
}
class ChildClass extends ParentClass
{
public function __construct()
{
$this->_property = 'Hello';
}
}
$childClass = new ChildClass();
var_dump($childClass->getProperty());
:私は、私はそれがうまくいくと思うようちょうどPHPでの継承が動作することを確認する簡単なテストを行っています。私の単体テストでデータプロバイダがNULLを返す理由は何ですか?
ありがとうございました。私はそれを試してみましょう。これを試してほしいと私に数日を与えてください、それが動作する場合、私はあなたの答えを受け入れるでしょう。これは私の個人的なプロジェクトであり、私は仕事の週にそれに取り組むのに多くの時間がありません;)乾杯。 –