我很想知道在测试类 __construct 中创建对象是一种很好的做法,或者我们应该始终使用 setup/teardown 方法(或 setUpBeforeClass/tearDown AfterClass 方法)?
我知道每个测试都会调用 set/teardown 这一事实,所以如果我将对象创建代码放入其中,会有什么好处吗?例如
//mytestclass.php
class MyTestClass extends PHPUnit_Framework_TestCase
{
private $obj;
protected function setUp()
{
$this->obj = new FooClass();
}
public testFooObj()
{
//assertions for $this->obj
}
...
}
如果我像这样在构造函数中创建对象,可能会出现什么问题:
class MyTestClass extends PHPUnit_Framework_TestCase
{
private $obj;
protected function __construct()
{
$this->obj = new FooClass();
}
public testFooObj()
{
//assertions for $this->obj
}
...
}
我尝试谷歌搜索以及 PHPUnit 文档无法获得太多信息,您能帮助我了解哪一个是好的做法吗?
setUp()
在运行每个测试之前被调用。__construct()
当你的类被实例化时发生。因此,如果您有多个测试并且它们使用本地属性并修改它们,请使用setUp()
您可以在每次测试运行之前确保它们相同。相反的是setUp()
is tearDown()
您可以确保每次测试后都清理测试数据。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)