【发布时间】:2020-08-17 19:50:27
【问题描述】:
在我的控制器构造函数中,我有中间件身份验证。我如何断言某人在测试中没有经过身份验证?现在我得到 Illuminate\Auth\AuthenticationException 并且使测试呈阳性的唯一方法是添加
$this->expectException('Illuminate\Auth\AuthenticationException')
在一开始。我看到了在测试开始时使用 withoutExceptionHandling() 或使用 assertUnauthorized() 之类的解决方案,但这并没有改变任何东西。
有没有更好的办法?
我正在使用 Laravel 7.2.2 和 PHPUnit 8.5。
【问题讨论】:
-
检查 401/403 响应代码。
-
显示一些代码,Laravel 中的一般特性测试不会抛出异常
-
也尝试过 assertStatus 401/403 但它没有帮助。看起来在异常之后它不会读取任何代码。
$reply = create('App\Reply'); $this->delete('replies/' . $reply->id);Create 是一个辅助函数,它可以创建一个回复和一个线程。 -
你还没有显示一些代码,当我们看不到整个测试时很难帮助
-
这两行是完整的测试。
标签: php laravel unit-testing phpunit laravel-7