phpunit中的undefined action()

时间:2018-03-19 21:16:00

标签: php laravel phpunit

<?php

namespace Tests\Feature;

use Tests\TestCase;
use Illuminate\Foundation\Testing\WithFaker;
use Illuminate\Foundation\Testing\RefreshDatabase;

class MemberRegTest extends TestCase
{
    /**
     * A basic test example.
     *
     * @return void
     */
    public function testExample()
    {
       $response = $this->call('GET', '/addmember');
      $response = $this->action('GET', 'MemberController@addmember');

    }
}

测试后给我错误

  

错误:调用未定义的方法测试\ Feature \ MemberRegTest :: action()

我做错了什么?

1 个答案:

答案 0 :(得分:0)

action里面有一个TestCase方法回到Laravel 4.x.此方法已替换为不同类和包中的新方法。 (您可以确认此次审核Laravel 5.6 TestCase class

对于最新版本的Laravel,如果您要测试HTTP Request ,您可以这样做:

    $response = $this->json('GET', 'api/addmember');
    $response->assertStatus(200) // or whatever you want to assert.

现在,如果您想进行浏览器测试,则应使用官方Laravel Dusk。此软件包具有非常酷且有用的方法来模拟用户与您网站的互动,就像这样简单:

    $this->browse(function ($browser) use ($user) {
        $browser->visit('/login')
                ->type('email', $user->email)
                ->type('password', 'secret')
                ->press('Login')
                ->assertPathIs('/home');