13

Symfony 2.0 バンドルのディレクトリ構造には、慣習的に、Testsテストを配置するディレクトリがあります。

Acme
    -> SomeBundle
        -> Controller
        -> Entity
        -> Service
        -> ...
        -> Tests
            -> Controller
            -> Entity
            -> Service
            -> ...
    -> OtherBundle
    -> ...

テストするクラスと同じ名前空間にない場合でも、テストが機能することは承知しています。

namespace Acme\SomeBundle\Service;

/**
 * Some service.
 *
 * @author varchar
 * @since  August 1, 2012
 */
class SomeService
{
}

上記のクラスの場合、私は通常、次の名前空間でテストを行います (ディレクトリ構造の影響を受けます)。

namespace Acme\SomeBundle\Tests\Service;

これで問題なく動作します。

ちなみに、私は Netbeans IDE を使用していますが、これは同じ名前空間にない限りテスト クラスを見つけることができません (これは、1 つのファイルのみをテストする場合に顕著です)。まあ、これはただの Netbeans 標準 (または何か) かもしれません。

ただし、テスト対象のクラスと同じ名前空間にテストを配置することは適切ですか? そうするメリットはありますか?

質問

1)テスト対象のクラスと同じ名前空間にテストを配置することは適切ですか?

2)そうするメリットはありますか?

4

2 に答える 2

4

バンドルでは、これは、取得したパッケージにすべてのテストが含まれているため、それらを実行できるようにするためです。自己完結型のパッケージであるため、これはSymfonyコンポーネントと同じです。主にそれはあなたのスタイルに依存します。別の一般的なパターンは、github.com / vandpibe/securityのようなものです

于 2012-08-01T08:23:41.563 に答える