加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-13 18:23:17 所属栏目:PHP教程 来源:网络整理
导读:我很想知道在测试类__construct中创建对象是好的做法,还是应该总是使用setup / teardown方法(或setUpBeforeClass / tearDownAfterClass方法)? 我知道每次测试都会调用set / teardown,如果我将objec创建代码放入其中,它会有什么用处吗?例如 //mytestclass.p
我很想知道在测试类__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(),您可以确保在每次测试后清理测试数据.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读