如何在做集成测试时访问Laravel实例



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

当使用PHPUnit编写单元测试时,这很容易:

    $setterMock = Mockery::mock(MyClass::class);
    $setterMock->shouldReceive('classMethod')
                ->andReturn('result');
    $this->app->instance(MyClass::class, $setterMock);

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

对不起,你不能。

PhantomJS通过HTTP访问服务器,所以没有什么可以被嘲笑。

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

最新更新