Symfony 2.0 bundle目录结构通常有一个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)这样做有什么好处吗?
答案 0 :(得分:11)
将测试置于与被测试类相同的命名空间是否合适?
到目前为止,关于这一点没有任何问题。所以,这或许只是个人偏好,现在。
这样做是否有任何优点?
似乎有。
1)由于测试和类将共享相同的命名空间,因此不需要
use Acme\SomeBundle\Tests\Service
在测试课程中。换句话说,创建一个与该类共享相同名称空间的测试稍微方便一些。
2)如果您使用的是NetBeans,那么您将能够使用IDE在单个类上运行测试。
答案 1 :(得分:4)
在Bundles中,这样你得到的包也会有所有的测试,所以你可以运行它们。这与Symfony组件相同,因为它们也是自包含的包。主要取决于你的风格。另一种常见模式如github.com/vandpibe/security