2
我在L5.1中使用了新的集成測試工具。運行測試類時出現一些奇怪的錯誤 - 我測試的頁面上大部分是404錯誤。奇怪的是,當我過濾到一個單獨的測試時,測試通過的很好。當我運行它所屬的整個測試類或測試套件時,它會以404失敗。該路由在瀏覽器中運行,並且測試在我自己運行時通過,因此它顯然不是有效的錯誤。Laravel集成測試作爲一個類運行時拋出虛假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');
}
}
當我運行 phpunit --filter=it_should_get_all_thingies
,它工作正常。 當我運行 phpunit --filter=MyTest
,它與404一起死亡。我可以將錯誤消息中的相關URL複製到瀏覽器中,它工作正常。
我能想到的唯一的其他相關事實是,這個從L4.2升級到5.0到5.1。
任何幫助,非常感謝。
你是我靈魂的救星,我欠你一輩子。我使用'require_once'將路由分解成單獨的文件,並將其切換爲'require'來修復所有內容。 – Leng
這樣做有沒有其他的效果,如路線被添加兩次? – astroanu