测试仅在laravel中重定向的控制器

时间:2016-04-12 15:54:58

标签: php unit-testing redirect laravel-5.2 laravel-routing

我不知道这些天人们是否测试控制器,或者您是否只是测试服务提供商和底层实体。但是,我有一个基本上做的控制器:if user failed to fill in form, redirect, if they did but didn't choose x redirect, if they did and chose x redirect.基本上是“我不关心你做什么我们将重定向”的情况。

现在有了laravel你有方便的方法,比如访问x并看到y。在这种情况下接受我正在测试的东西生活在子域下并且没有简单的方法来测试它。 (从我在堆栈上提出的其他问题)。

我在执行visit想法时遇到的主要问题是:

PHP Fatal error:  Class 'Symfony\Component\DomCrawler\Crawler' not found in /var/www/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithPages.php on line 76

尝试visit非子域路由时,我不会遇到此问题。

因此,当我尝试执行以下操作时:

    $this->action('POST', 'EveMarketSearchController@search', []);
    $this->assertRedirectedToRoute('eve.search');

由于您尚未填写表单,因此会重定向回搜索页面。我明白了:

--- Expected
+++ Actual
@@ @@
-'http://eve-market.adambalan.local/search'
+'http://eve-market.adambalan.local'

所以我的问题是:

如何在子域下编写控制器操作的测试,无论inout是否会重定向到其他页面以获取更多选项或从搜索结果页面选择?

0 个答案:

没有答案