Почему модульный тест в «тест 1» возвращает мне код состояния 500, а не 200? Может ли кто-нибудь объяснить мне? Вот пример из 2 тестов для одного и того же действия, и они возвращают другой код состояния. Я ожидал 200 в обоих тестах?Laravel 5 - Тестирование устройства - код состояния 500, ожидаемый 200
LanguageController
class LanguageController extends Controller implements IEntityViewManager
{
public function showAllView()
{
$allLanguages = $this->languageRepo->orderBy('id');
return view('admin.languages.showAll')->with('languages', $allLanguages);
}
}
LanguageControllerTest
class LanguageControllerTest extends TestCase
{
public function __construct($name = NULL, array $data = array(), $dataName = '')
{
parent::__construct($name, $data, $dataName);
}
public function setUp()
{
parent::setUp();
}
public function tearDown()
{
Mockery::close();
}
protected function setUpMock()
{
$mock = Mockery::mock(LanguageRepositoryInterface::class);
$this->app->instance(LanguageRepositoryInterface::class, $mock);
return $mock;
}
// test 1
public function testShowAllLanguages()
{
$mock = $this->setUpMock();
$mock->shouldReceive('orderBy')->once()->andReturn([1]);
$result = $this->action('GET', 'Entities\[email protected]');
var_dump("Test 1 : " . $result->getStatusCode()); // RETURNS 500
}
// test 2
public function testShowAllView()
{
$result = $this->action('GET', 'Entities\[email protected]');
var_dump("Test 2 : " . $result->getStatusCode()); // RETURNS 200
$this->assertViewHas('languages');
$this->assertResponseOk();
}
}
Ответы в CMD:
Вы пробовали посмотреть файлы журнала ошибок Laravel? – Jono20201
, смотрящий на файл журнала, будет очень полезен, но я думаю, что вы не издеваетесь над правилом languageRepo. –
Установка пустого массива для '$ dontReport' (список исключений, которые не должны сообщаться) в' app/exceptions/Handler. php' может помочь в устранении ошибок в тестах, так как их можно просматривать в журналах таким образом. – apex39