PHPUnit-Hello World测试
时间:2020-02-23 14:42:04 来源:igfitidea点击:
在本教程中,我们将编写我们的第一个PHPUnit测试。
测试hello world
在我们的入门教程中创建的测试文件夹中,我们将继续创建HelloWorldTest.php文件。
在文件内编写以下代码。
<?php class HelloWorldTest extends \PHPUnit_Framework_TestCase { } ?>
我们创建了一个类HelloWorldTest,它正在扩展PHPUnit_Framework_TestCase类。
此时该类为空,因此如果我们运行phpunit,将收到以下警告,指出该类中没有测试。
WARNINGS! Tests: 1, Assertions: 0, Warnings: 1.
现在,让我们继续进行第一个测试。
因此,在类内部创建以下方法。
public function testGreeting() { //some code here... }
因此,我们创建了第一个测试方法并将其命名为testGreeting
在测试方法之前添加单词test是一个命名约定。
此时,该方法为空,因此,如果再次运行phpunit,将得到以下输出。
OK (1 test, 0 assertions)
这意味着我们有1个测试,但测试中有0个资产。
因此,让我们继续并将更多代码添加到我们的testGreeting()
方法中并执行一些声明。
添加断言
可以说,我们要检查变量的值是否等于所需值。
因此,在下面的代码中,我们有一个$greeting变量,它包含" Hi World"字符串。
现在,假设我们要检查它是否等于$requiredGreeting`值。
为了执行equals断言,我们使用assertEquals()
方法。
public function testGreeting() { $greeting = "Hi World"; $requiredGreeting = "Hello World"; $this->assertEquals($greeting, $requiredGreeting); }
如果查看上面的代码,您会看到所需的问候消息不等于该问候消息。
因此,如果我们运行测试,将会得到失败的结果。
FAILURES! Tests: 1, Assertions: 1, Failures: 1.
因此,以上输出表明" Hello World"是预期的,但提供了" Hi World"。
要解决此问题,我们必须将$greeting变量的值设置为" Hello World"。
最终代码
<?php class HelloWorldTest extends \PHPUnit_Framework_TestCase { public function testGreeting() { $greeting = "Hello World"; $requiredGreeting = "Hello World"; $this->assertEquals($greeting, $requiredGreeting); } } ?>
现在,如果我们运行测试,我们将得到以下输出。
OK (1 test, 1 assertion)