我有一个简单的方法get_db_password()
可以返回一个字符串,或者在某些情况下它可以返回null
,这两种情况都应该被视为有效的响应。
我真正测试的是,如果调用getter,脚本不会爆炸
如何编写测试/断言 - 调用get_db_password()
并断言脚本没有死,或者可以测试响应是null
还是字符串。例如
$this->assertInternalType( "string || null", $this->config->get_db_password() );
源代码
<?php
class Config {
/** @var string $db_password stored the database password */
private $db_password;
public function __construct() {
$this->db_password = require(PROJ_DIR . "config/productions.php");
}
/** @return string
*/
public function get_db_password() {
return $this->db_password;
}
}
测试代码
<?php
class ConfigTest extends PHPUnit\Framework\TestCase {
public $config;
public function test_get_db_password_returns_a_string_or_null() {
$this->config = new Config;
// how can I write this test?
$this->assertInternalType('string || null', $this->config->get_db_password());
}
}
答案 0 :(得分:1)
我发现这是一个令人满意的解决方案
$this->assertTrue(is_string($pass) || $pass === null);