У меня есть Behat FeatureContext
, для которого я хочу поменять реализацию Laravel данного класса на издевательскую.
поэтому у меня есть этот метод с аннотацией @beforeSuite
/**
* @static
* @beforeSuite
*/
public static function mockData()
{
$unitTesting = true;
$testEnvironment = 'acceptance';
$app = require_once __DIR__.'/../../../bootstrap/start.php';
$app->boot();
$fakeDataRetriever = m::mock('My\Data\Api\Retriever');
$fakeData = [
'fake_name' => 'fake_value'
];
$fakeDataRetriever->shouldReceive('getData')->andReturn($fakeData);
$app->instance('My\Data\Api\Retriever', $fakeDataRetriever);
}
Итак, я вижу, что приложение Laravel и поддельные данные меняются местами, но когда я запускаю Behat, оно игнорируется, что означает, что Laravel использует реальную реализацию вместо поддельной.
Я использую Laravel 4.2
Кто-нибудь знает способ поменять местами реализации Laravel при запуске Behat?
Причина, по которой мне это нужно, заключается в том, что данные поступают из удаленного API, и я хочу, чтобы тест выполнялся без обращения к API.
My\Data\Api\Retriever
, вы вводите его? - person user1669496   schedule 01.07.2015