【发布时间】:2012-07-29 22:03:39
【问题描述】:
传统上,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
{
}
对于上面的类,我(for one)通常会在以下命名空间(受目录结构影响)下进行测试:
namespace Acme\SomeBundle\Tests\Service;
现在,这可以正常工作了。
不过,顺便说一下,我使用的 Netbeans IDE 无法找到测试类,除非它位于同一命名空间下(这在您只想测试单个文件时很明显)。好吧,这可能只是一个 Netbeans 标准(或其他东西)。
无论如何,将测试放在与被测试类相同的命名空间下是否合适?这样做有什么好处吗?
问题
1) 将测试放在与被测试类相同的命名空间下是否合适?
2)这样做有什么好处吗?
【问题讨论】:
-
如果您使用骨架生成器,PHPUnit 似乎默认将它们放在同一个命名空间中。不过,这是否表明这样做是最佳做法是另一回事。
标签: php namespaces phpunit