我正在使用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)
更新:根据下面 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)
| 归档时间: |
|
| 查看次数: |
4154 次 |
| 最近记录: |