2016-08-22 39 views
0

我正在使用Codeception + Selenium + PhantomJS编写测试。 我遇到的问题是我需要模拟各种类,并在不同的测试中绑定不同的实现(有时候模拟了一个类的方法,它们的方法返回了预定义的结果)。如何在进行集成测试时访问Laravel实例?

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

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

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

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

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

回答

-1

对不起,但你不能。

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

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

+0

我有一些JS代码需要运行。该模块是否允许我运行它? – naneri

+0

不,它不执行JavaScript代码。 – Naktibalda

相关问题