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();
}
}
希望对您有所帮助
我想在函数内部测试一些变量,但是这个函数没有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();
}
}
希望对您有所帮助