2

PHP クラスの単体テストに SimpleTest を使用しています。必要なクラスを自動ロードするカスタム基本クラスを追加しましたspl_autoload_register

しかし、今では嘲笑が問題になっています。名前空間を介してロードされるクラスをモックするにはどうすればよいですか?

これは基本的に、テストクラスにあるものです。

<?php
require_once('../../GGUnitTestCase.php');

Mock::generate('\Core\Routes\GGRoute');

class TestGGRouter extends GGUnitTestCase
{    
    function TestMethod()
    {
        $route = new \Core\Route\GGRoute(); // <-- This loads up fine!

        // But i need a Mock class, not the real one.
        // How to load a Mock in this case?
        $routeMock = new \Core\Routes\MockGGRoute(); // <-- Doesn't work!

        $this->assertTrue(false);
    }
}
?>

名前空間を介してロードされた(自動ロードされた)クラスをまだモックする方法を知っている人はいますか?

4

1 に答える 1

2

\名前空間化されたクラスの名前の (前のものを除くすべて) を に置き換えます::。あなたの例では、それは...

Mock::generate('Core::Routes::GGRoute');
于 2013-11-02T11:35:29.410 に答える