在PHPUnit中声明布尔值/字符串的函数结果

alt*_*ser 5 phpunit assertion

我正在使用PHPUnit自动测试我的应用程序。我想断言可以返回布尔值或字符串的函数调用的结果。我的代码如下所示:

$myExample = new MyExample();
$value = $myExample->getValue();
if ($value !== false) {
  assertNotNull($value);
  assertFalse(empty($value));
}
Run Code Online (Sandbox Code Playgroud)

但是还可以检查该方法是否成功执行吗?“ assertTrue($ value)”是否正确?

小智 8

更新:已弃用的方法

如果您想检查数据类型,请使用以下内容:

assertIsArray()

assertIsBool()

assertIsFloat()

assertIsInt()

assertIsNumeric()

assertIsObject()

assertIsResource()

assertIsString()

assertIsScalar()

assertIsCallable()

assertIsIterable()

assertIsNotArray()

assertIsNotBool()

assertIsNotFloat()

assertIsNotInt()

assertIsNotNumeric()

assertIsNotObject()

assertIsNotResource()

assertIsNotString()

assertIsNotScalar()

assertIsNotCallable()

assertIsNotIterable()
Run Code Online (Sandbox Code Playgroud)


con*_*tor 6

更新:根据下面 mtiziani 的评论,这个答案适用于 9 以下的 PHPUnit 版本。#

如果您想断言值的数据类型,正确的方法是:

$this->assertInternalType('[expected_data_type]', $value);
Run Code Online (Sandbox Code Playgroud)

PHPUnit[expected_data_type]可以验证以下任意一个:

'array'
'boolean'
'bool'
'float'
'integer'
'int'
'null'
'numeric'
'object'
'resource'
'string'
'scalar'
'callable'
Run Code Online (Sandbox Code Playgroud)

因此,要断言返回值是布尔值,您可以:

$this->assertInternalType('bool', $value);
Run Code Online (Sandbox Code Playgroud)