And*_*agh 2 integration-testing laravel-5
我在L5.1中使用了新的集成测试.我在运行测试类时遇到了一些奇怪的错误 - 在我正在测试的页面上大多是404.奇怪的是,当我过滤到单独的测试时,测试通过很好.当我运行它所属的整个测试类或测试套件时,它失败了404.该路由在浏览器中工作,并且当我自己运行时测试通过,所以它显然不是有效的错误.
代码看起来像这样:
class MyTest extends \TestCase
{
use WithoutMiddleware;
public function __construct() {
parent::__construct();
$this->mock = m::mock('MyApp\Stuff\Repository');
$this->validator = m::mock('Illuminate\Validation\Factory');
$this->mockedClass = m::mock('MyApp\Stuff\Service');
}
/**
* @test
*/
public function it_should_get_all_thingies() {
$this->mockedClass->shouldReceive('someMethod')
->once()
->andReturn('yay');
$this->app->instance('MyApp\Stuff\Service', $this->mockedClass);
$this->visit('/api/v1/thingies');
}
}
Run Code Online (Sandbox Code Playgroud)
当我跑
phpunit --filter=it_should_get_all_thingies,它工作正常.当我运行时
phpunit --filter=MyTest,它会死于404.我可以将相关的URL从错误消息复制到浏览器中,它可以正常工作.
我能想到的唯一其他相关事实是,这是从L4.2到5.0到5.1的更新.
任何帮助是极大的赞赏.
弄清楚触发错误的原因以及如何解决它.我正在拉这样的辅助路由文件:
Route::get('/', function () {
return view('welcome');
});
Route::group(['prefix' => 'api/v1'], function() {
require_once_app_path(__DIR__ . '/routes2.php');
});
Run Code Online (Sandbox Code Playgroud)
该require_once_app_path触发问题.在L4.2或L5.0中没有发生,当我们升级到5.1时启动.用它require来代替它似乎可以解决问题.
| 归档时间: |
|
| 查看次数: |
607 次 |
| 最近记录: |