Laravel 5 - модульное тестирование - код состояния 500, ожидается 200

Почему модульный тест в "тесте 1" возвращает мне код состояния 500, а не 200? Может кто-нибудь объяснить мне? Вот пример в 2 тестах для одного и того же действия, и они возвращают другой код состояния. Я ожидал 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\LanguageController@showAllView');

        var_dump("Test 1 : " . $result->getStatusCode()); // RETURNS 500
    }

    // test 2
    public function testShowAllView()
    {
        $result = $this->action('GET', 'Entities\LanguageController@showAllView');

        var_dump("Test 2 : " . $result->getStatusCode()); // RETURNS 200

        $this->assertViewHas('languages');

        $this->assertResponseOk();
    }
}

Отзывы в cmd:

1 ответ

Я проверил laravel.log и нашел следующие журналы:

[2016-04-26 08:45:49] testing.ERROR: исключение "ErrorException" с сообщением "Попытка получить свойство не-объекта" в C:\xampp\htdocs\STP\storage\framework\views\76c117f88e2ab8d2c5f85f5187e254573559a2c3.php:7 трассировки стека:

и следующий журнал:

Следующее исключение "ErrorException" с сообщением "Попытка получить свойство необъекта (представление: C:\xampp\htdocs\STP\resources\views\admin\languages ​​\showAll.blade.php)" в C: \ xampp \ htdocs \ STP \ хранение \ рамки \ вид \ 76c117f88e2ab8d2c5f85f5187e254573559a2c3.php: 7

Трассировки стека:

и на мой взгляд я имею доступ к свойствам $language с:

$languages-> char, $language-> name

но это массив, поэтому я должен получить доступ с:

$language ['char'], $language ['name']

и оба теста теперь работают правильно и возвращают код состояния 200.

Спасибо всем за помощь.

Другие вопросы по тегам