PHPUnit 7:无法断言抛出类型为 InvalidArgumentException的异常

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHPUnit 7:无法断言抛出类型为 InvalidArgumentException的异常相关的知识,希望对你有一定的参考价值。

我有这个代码:

public function method(){
  //...
  if(!$exist) {
      throw new InvalidArgumentException('Ce client inexistant', 400);
  }
}

我做这段代码的UT:

public function methodTest(){
      //...
      if(!$exist) {
          $this->expectExceptionMessage("Ce client inexistant");
          $this->expectException("InvalidArgumentException");
      }
    }

它显示错误消息

无法断言抛出类型“ InvalidArgumentException”的异常。

我不知道我的代码中的错误在哪里。

答案

尝试

      $this->expectException(InvalidArgumentException::class);

代替:

      $this->expectException("InvalidArgumentException");

希望这有帮助

另一答案

我解决了我的问题。这是代码:

$ this-> throwException(new InvalidArgumentException('Ce client inexistant',400));

以上是关于PHPUnit 7:无法断言抛出类型为 InvalidArgumentException的异常的主要内容,如果未能解决你的问题,请参考以下文章

PHPunit - 错误

PHPUnit 问题断言模拟是使用 Laravel 的 ReflectionProperty 对象

PHPUnit 显示抛出致命错误异常的传递方法

PHPUnit:assertThat()是否增加断言计数?

Phpunit:在 laravel 中处理验证异常

Phpunit测试既不输出也不抛出错误