首页 > 解决方案 > Phpunit Assert 是否抛出任何错误代码?

问题描述

PhpUnit Assertions 是否抛出任何错误代码/成功代码 - 每当断言通过或失败时?

例如 -

Assert::assertEquals('$expectedValue', '$actualValue');

如果失败 - 错误代码是什么?

标签: phpphpunitassertassertionbehat

解决方案


感谢您提出这个问题,仔细看看非常有趣:

鉴于:

$expected = true;
$actual = false;

使用时:

self::assertEquals($expected, $actual);

或者:

$this->assertEquals($expected, $actual);

在 Phpunit 测试用例测试方法中,Phpunit 不是通过返回进行通信,而是通过在期望失败的情况下抛出异常来进行通信,并且在期望失败的情况下抛出任何异常来进行通信。

这是在您的问题Assert::assertEquals()9.5.6通过static::assertThat()9.5.6 评估IsEqual9.5.6约束中完成的。

对于该evaluate()方法,您可以要求返回值,该值将是一个布尔值 then (代码 thentruefalse)。

否则会抛出一个ExpectationFailedException9.5.6,它向测试运行器发出一个失败的断言(期望)信号,它识别测试失败并将测试标记为失败。

PhpUnit 断言是否抛出任何错误代码/成功代码 - 每当断言通过或失败时?

一般来说,当期望不匹配时,他们会抛出。

但是,您通常不会看到它,因为测试运行程序正在处理该信号及其编码含义:

  • 如果您的所有期望都匹配,则运行测试方法迭代的结果是成功的。
  • 如果其中一个期望仍然不匹配,则运行测试方法迭代的结果是失败
  • 如果您的测试方法没有预期,则认为它是不完整的测试

推荐阅读