在 phpunit 中 __construct 与 setup 之间有什么区别?

2024-04-29

我很想知道在测试类 __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(使用前将#替换为@)

在 phpunit 中 __construct 与 setup 之间有什么区别? 的相关文章

随机推荐