私はこのような形式の何かのクラスを持っている:コンストラクタが引数を取るクラスのメソッドを単体テストする方法は?
:私はPHPUnitのを実行すると、それはのようないくつかのエラーをスローしかしuse A;
class ATest extends PHPUnit_Framework_TestCase{
public function testGetSum{
$a = new A();
$this->assertEquals(3, $a->getSum(1,2));
}
}
:
class A{
public function __constructor(classB b , classC c){
//
}
public function getSum(var1, var2){
return var1+var2;
}
}
私のテストケースクラスは次のようなものです
Missing argument 1 for \..\::__construct(), called in /../A.php on line 5
引数を指定しても、同じエラーが発生しますが、別のファイルに出力されます。
は私がClassBののコンストラクタ(ClassBののコンストラクタは、Aと同様の形状を有している)ため、同じエラーを取得し、その後 $a = new A(new classB(), new classC());
でインスタンス化し、言います。
Missing argument 1 for \..\::__construct(), called in /../B.php on line 10
他の方法があり、私は関数や、私が行方不明です何かをテストすることができます。
私は単体テストの目的を無視しているので、mock(getMockBuilder()、setMethods()、getMock())を使ってテストしたくありません。
は「PHPUnitの – Eli
のセットアップ方法とそれを試してみてください私が引数を提供しても、それはエラーを投げる。それはしないでください。 PHPunitクラス内でオブジェクトを作成することは、それを他の場所に作成することと変わりありません。あなたの問題は、PHPunitではなく、オブジェクトのコンストラクタ自体のように聞こえます。 –
@WillemRenzema、私も同じように感じます。しかし、それを解決することはできません。 – sunil