这是我编写的测试用例,当我尝试在linux上使用此命令vendor/bin/phpunit
运行它时,它给出了错误“调用未定义的方法Tests \ Unit \ ExampleTest :: visit()”
namespace Tests\Unit;
use Tests\TestCase;
use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;
class ExampleTest extends TestCase
{
/**
* A basic test example.
*
* @return void
*/
public function testBasicTest()
{
$this->visit('/Login')
->type('KP123@gmail.com','email')
->type('123456','password')
->press('Login')
->seePageIs('/home')
->see('Katy Perry');
}
}
我尝试过运行作曲家更新,但仍无法正常工作。以前有人遇到过这个问题吗?
答案 0 :(得分:0)
visit()
方法看起来像是SeleniumTestCase的一部分。所以我的猜测是你从错误的基类扩展。我认为它看起来应该是这样的:
class ExampleTest extends \PHPUnit_Extensions_Selenium2TestCase
{
// your test method
}
编辑:我刚刚注意到了Laravel标签,所以它可能更像是Illuminate\Foundation\Testing\TestCase
。如果这会给您带来错误而无法找到该类,则必须将phpunit.xml
中的引导程序文件设置为vendor/autoload.php
或其他适当的引导文件,其中文件已在自动装带器中注册。
答案 1 :(得分:0)
我可能会迟到这个问题,但这是我的2美分。我一直试图在我的测试用例中使用相同的方法,这导致了一个惨淡的失败。
我意识到我实际上可以使用在Foundation命名空间上找到的TestResponse类,它包含响应对象周围的许多方法。
$this->get('/url/to/visit'); //Then you can make your assertions on the returned response.
在我的情况下,我为应用程序启用了身份验证,因此它始终抱怨标题视图,其中显示当前登录用户的用户名。如果遇到这种情况,请使用如下所示的Auth Facade:
\Auth::loginUsingId(1);
您现在应该可以断言您的回复中包含一些文字。希望这可以帮助。顺便说一句,我在Laravel 5.4
答案 2 :(得分:0)
如果您使用的是新版本的 Laravel,您必须使用 Laravel Dusk 来使用与 $this->visit
或 see
类似的方法。它在版本 6 左右被排除在 Laravel 之外。
相反,您可以使用,但它的选项有限:
$this->get('/Login')
答案 3 :(得分:0)
composer require laravel/browser-kit-testing --dev
试试这个