2011-01-11 16 views
0

私はテストしたいクラスがあります。コードは次のとおりです:私のテストメソッドでクラスをPHPUnitに置き換えるにはどうすればよいですか?

class MyClass 
{ 
    function functionToTest() { 

     $class = new Example(); 

} 

PHPUnitでは、模範/クラスの代わりにモック/スタブを使用できますか?私のテスト方法では

class MyClassTest extends PHPUnit_Framework_TestCase { 

    function testFunctionTest() { 
     $testClass = new MyClass(); 
     $result = $testClass->functionTest(); 

    } 

} 

だからではなく、実際の「例」クラスを使用して、ここに介入したPHPUnitと「新しい例()」を表すためにモックを使うことができますか?そして、あなたはあなたのユニットテストでそれを模擬することができるでしょう

function functionToTest(Example $class) 

答えて

2

最善の解決策は、functionToTest()方法にExampleインスタンスを注入することであろう

function testFunctionTest() { 
    $testClass = new MyClass(); 
    $class = $this->getMock('Example'); 
    $result = $testClass->functionTest($class); 

} 

しかし、もし、このアプローチ何らかの理由であなたのためのオプションではありません、拡張機能によって提供されるset_new_overload()機能を使用してみてください。 Sebastian Bergmann's blogの詳細を参照してください。

関連する問題