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

前端之家收集整理的这篇文章主要介绍了在phpunit中__construct与setup之间有什么区别?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我很想知道在测试类__construct中创建对象是好的做法,还是应该总是使用setup / teardown方法(或setUpBeforeClass / tearDownAfterClass方法)?

我知道每次测试都会调用set / teardown,如果我将objec创建代码放入其中,它会有什么用处吗?例如

//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()相反的是tearDown(),您可以确保在每次测试后清理测试数据.

猜你在找的PHP相关文章