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 无法找到测试类,除非它位于相同的命名空间下(这在您只想测试单个文件时很明显)。好吧,这可能只是一个 Netbeans 标准(或其他东西)。

然而无论如何,将测试放在与被测试类相同的命名空间下是否合适?这样做有什么好处吗?

问题

1)将测试放在与被测试类相同的命名空间下是否合适?

2)这样做有什么好处吗?

4

2 回答 2

13

将测试放在与被测试类相同的命名空间下是否合适?

到目前为止,还没有这方面的问题。因此,目前这可能只是个人喜好问题。

这样做有什么好处吗?

好像有。

1)由于测试和类将共享相同的命名空间,不需要

use Acme\SomeBundle\Tests\Service

在测试课上。换句话说,创建一个与类共享相同命名空间的测试会稍微方便一些。

2)如果您使用的是 NetBeans,那么您将能够使用 IDE 在单个类上运行测试。

于 2012-09-03T13:30:23.743 回答
4

在 Bundles 中,这是为了让您获得的包也将包含所有测试,以便您可以运行它们。Symfony 组件也是如此,因为它们也是自包含的包。主要取决于你的风格。另一个常见的模式是 github.com/vandpibe/security

于 2012-08-01T08:23:41.563 回答