Laravel:如何模拟一个班级

时间:2016-12-08 17:36:46

标签: laravel unit-testing mocking

是否有任何好的教程可以解释如何在Laravel中模拟一个类?

我有点困惑,因为Laravel文档(5.2)只讨论嘲弄外墙,工作和事件(最后两个我从来没有说过诚实,工作我不知道它是什么)。

这基本上是我要测试的场景(简化为示例):

?php 
class A
{
  protected $B;
  public function __construct($classB)
    {
        $this->B = $classB;
    }
}
class B implements myInterface
{
   public function methodToTest();
}

我想模拟我发送给A类构造函数的B类。我应该为界面和模拟类创建新文件吗?或者也许可以使用mockery库(我在stackOverflow上看到一些)?顺便提一下,我在哪里可以阅读关于嘲弄课程的内容;我无法在Laravel文档中找到它。

我提前道歉,因为有点困惑。

1 个答案:

答案 0 :(得分:3)

Laravel的测试文档是有限的,因为它扩展了PHPUnit,已经有足够的文档:

https://phpunit.de/manual/current/en/test-doubles.html

在最基本的情况下,你会做这样的事情:

$stub = $this->createMock(B::class);
$a = new A($stub);

您可以阅读上面链接的文档,了解PHPUnit提供的所有花哨功能。