如何在进行集成测试时访问Laravel实例?

时间:2016-08-22 14:54:33

标签: codeception

我正在使用Codeception + Selenium + PhantomJS编写测试。 我遇到的问题是我需要模拟各种类并在不同的测试中绑定不同的实现(有时类的模拟具有由其方法返回的预定义结果)。

使用PHPUnit编写单元测试很简单:

    $setterMock = Mockery::mock(MyClass::class);

    $setterMock->shouldReceive('classMethod')
                ->andReturn('result');

    $this->app->instance(MyClass::class, $setterMock);

但是在编写集成测试时,我不知道如何访问$ app实例。我试图在验证测试文件夹中的__bootstrap.php中应用类似的代码,但它不起作用。

1 个答案:

答案 0 :(得分:-1)

抱歉,但你不能。

PhantomJS通过HTTP访问服务器,因此无法模拟任何内容。

您可以使用Laravel5模块而不是Webdriver来实现模拟测试。