📜  assertequals vs assertsame - PHP (1)

📅  最后修改于: 2023-12-03 15:29:31.344000             🧑  作者: Mango

AssertEquals vs AssertSame - PHP

当我们在编写测试用例的时候,在与期望相比较的时候,两个常用的方法是 assertEquals()assertSame()

什么是 assertEquals()?

assertEquals() 方法会比较两个变量是否相等,并且会在类型不匹配的时候将它们转换为统一的类型再进行比较。例如,如果一个变量是整数类型,而另一个变量是字符串类型,那么 assertEquals() 会将字符串转换为整数类型再进行比较。如果两个变量的类型不匹配且无法转换,则会抛出异常。

语法:

void assertEquals(mixed $expected, mixed $actual, $message = '');

实例:

$this->assertEquals(4, "4"); // true
$this->assertEquals(4, "4abcd"); // true
$this->assertEquals(4, 4.0); // true
$this->assertEquals(4, 5); // false
什么是 assertSame()?

assertSame() 方法用于检查两个变量是否相等且类型相同。这意味着如果两个变量类型不同,无论其值是否相等,都会返回false。如果两个变量的类型和值都相等,则会返回true。它非常适合用于检查对象实例。

语法:

void assertSame(mixed $expected, mixed $actual, $message = '');

实例:

$this->assertSame(4, "4"); // false
$this->assertSame(4, "4abcd"); // false
$this->assertSame(4, 4.0); // false
$this->assertSame(4, 5); // false
结论

assertEquals() 方法是比较两个变量的值是否相等并且可以在类型不同的情况下将它们转换为统一类型后再进行比较。而 assertSame() 方法则比较两个变量是否相等且类型相同。

因此,我们在测试两个变量时应根据需要选择使用 assertEquals()assertSame() 方法。

希望本篇介绍对大家在PHPUnit进行单元测试中有所帮助。