我刚刚开始使用PHPUnit。在此之前,我已经使用了RSpec和Cucumber及其孤立的环境。 我已经完成了我的第一次phpunit测试,并创建了2个模拟课程,想知道他们是否会留在我的下一个测试中,并且正如我所假设的那样,他们会的。
现在,我正在考虑为所有这些助手使用一个非常具体的命名空间,如下所示:
<?php
namespace Subject;
class FirstDependency { /* ... */ }
class TestableSubject extends \Subject { /* ... */ }
class SubjectTest extends \PHPUnit_Framework_TestCase {
/* tests */
}
有没有更好的解决方案来避免命名空间混乱?
我借此机会提出另一个问题:在方法调用和动态类实例化($s = 'MyClass'; $c = new $s;
)之间哪个更快?
实际上,当我有一个依赖项时,我只是把它放在一个方法上,比如我们new_something()
,然后用覆盖的方法测试子类TestableSubject
。
再说一次,还有更好的方法吗?