我试图在我的Laravel 5.1应用程序中拥有多个域
Route::group(['domain' => 'api.example.local'], function() {
Route::resource('users', 'ResultController');
});
Route::group(['domain' => 'www.example.local'], function() {
Route::resource('home', 'HomeController');
});
当我为api.example.local进行单元测试时
public function testApiCall() {
$this->get('v1/users')->seeJson(['data' => 'users']);
}
然而,这种方法失败了,并且它返回了404请求。 因此,我将测试网址更改为此类
public function testApiCall() {
$this->get('http://api.example.local/v1/users')->seeJson(['data' => 'users']);
}
最后,它是单元测试的绿色。
我想知道这是否是正确的做法? 另外,我将有不同的环境,例如http://api.example.stage/v1/users。这是否意味着当我为舞台进行单元测试时,我需要将更改网址更改为http://api.example.stage/v1/users?
答案 0 :(得分:0)
是的,这对我来说是非常正确的。我也这样做。
我只使用call
代替get
$this->call('GET',...
$this->assertResponseOk();
答案 1 :(得分:0)
对我来说几乎一样,但是我正在设置ENV变量。
.env
FOO_DOMAIN=foo.example.com
WWW_DOMAIN=www.example.com
路线
Route::domain(env('WWW_DOMAIN'))->group(function () {
Route::get('/', 'IndexController@index')->name('index');
});
Route::domain(env('FOO_DOMAIN'))->group(function () {
Route::get('/', 'FoolishController@index')->name('foolish');
});
Phpunit
$this->get('https://' . env('WWW_DOMAIN') . '/')
->assertSuccessful()
->assertSeeInOrder(['Home']);