沃梦达 / 编程问答 / php问题 / 正文

phpunit中未定义的动作()

undefined action() in phpunit(phpunit中未定义的动作())

本文介绍了phpunit中未定义的动作()的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

<?php

namespace TestsFeature;

use TestsTestCase;
use IlluminateFoundationTestingWithFaker;
use IlluminateFoundationTestingRefreshDatabase;

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

    }
}

After testing gives me error

Error: Call to undefined method TestsFeatureMemberRegTest::action()

What i do wrong?

解决方案

There was an action method inside TestCase back to Laravel 4.x. This method has been replaced for new ones in different classes and packages. (You can confirm this reviewing the Laravel 5.6 TestCase class)

For the latest versions of Laravel, If you are trying to test a HTTP Request you could do:

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

Now if you want to do browser tests, you should use the official Laravel Dusk. This package has very cool and useful methods to simulate user interactions with your site, as easy as this:

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

这篇关于phpunit中未定义的动作()的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:phpunit中未定义的动作()

基础教程推荐