我正在尝试测试我的 Laravel 应用程序,运行 phpunit,但出现错误:

Error: Call to undefined method Illuminate\Hashing\BcryptHasher::driver()

Laravel 5.5,PHPUnit 7.0

我的用户测试:
namespace Tests\Feature;

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

class UserTest extends TestCase
{
   use RefreshDatabase;

   /** @test */
   function name_should_not_be_too_long()
   {
      $response = $this->post('/users', [
          'name' => str_repeat('a', 51),
          'email' => $this->user->email,
          'password' => 'secret',
      ]);

      $response->assertStatus(302);
      $response->assertSessionHasErrors([
          'name' => 'The name may not be greater than 50 characters.'
      ]);
  }

}

最佳答案

在您的 CreatesApplication 类中更改此行:

Hash::driver('bcrypt')->setRounds(4);

对此:
Hash::setRounds(4);

之后,做一个composer dumpautoload
如果仍然没有运气,请降级到 phpunit 6.0。

关于laravel 错误调用未定义的方法 Illuminate\Hashing\BcryptHasher::driver(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49126397/

10-14 15:06