0
以下の例では、の中でgetBaseValue()
の呼び出しを擬似したいと思います。しかし、私はそれを理解することはできません。PHPUnit:テスト中のメソッドで内部呼び出された関数を模擬する方法
class Sample
{
function multipliedValue()
{
$value = $this->getBaseValue();
return $value * 2;
}
function getBaseValue()
{
return 2;
}
}
私はPHPUnitモックを使用しましたが、動作しませんでした。だから、私は次のコードを使用:
class SampleTest extends PHPUnit_Framework_TestCase
{
function testMultipliedValueIfBaseValueIsFalse()
{
$mockedObject = $this->getMockBuilder(Sample::class)
->setMethods(['multipliedValue', 'getBaseValue'])
->getMock();
$mockedObject->expects($this->any())
->method("getBaseValue")
->willReturn(false);
$result = $mockedObject->multipliedValue();
$this->assertFalse($result);
}
}
私は残りの部分は、ちょうど彼らがそうであるように行く、グローバル関数を作成しますが、唯一の私の目的の値を返すようにする方法の1を強制しようとしました。どのように私はこの試験に近づくべきですか?
私が現在取得中のエラーは、メソッドの$this
であり、スタブ付きオブジェクトとして扱われます。
を、これは誤り '未定義のメソッドSampleTestにつながるこう:: getBaseValue( ) '' getBaseValue() 'は内部的に' multipliedValue() '関数によって呼び出されます。 –
あなたは正しいですか。私はこれをやって間違っていた。どうもありがとう –