Return 来自 mock(php) 的变量

Return variables from mock(php)

我想在函数内部测试一些变量,但是这个函数没有return它。

我有这样的功能:

<?php

class Test 
{

   private $repo;       

   public function __construct($repo)
   {
        $this->repo = $repo;
   }

   public function exemple()
   {
        $name = 'Example name';
        $this->repo->add($name);
   }

}

然后这样测试:

<?php

use Mockery as M;

class someTest extends TestCase
{
   public testConstract()
   {
       $repo = M::mock(SomeClass::class);
       $repo->shouldReceive('add');
       $test = new Test($repo);
       $test->exemple();
   }
}

如何测试变量 $name

您可以像 described in the doc 一样使用 withArgs 指令。 例如,您可以按如下方式修改您的测试:

<?php

use Mockery as M;

class someTest extends TestCase
{
   public testConstract()
   {
       $repo = M::mock(SomeClass::class);
       $repo->shouldReceive('add')->withArgs(array('Example name'));
       $test = new Test($repo);
       $test->exemple();
   }
}

希望对您有所帮助