PHPUnit检查方法返回类型
我很难测试返回方法的内容类型。成功时返回PHPUnit检查方法返回类型,php,unit-testing,testing,phpunit,Php,Unit Testing,Testing,Phpunit,我很难测试返回方法的内容类型。成功时返回string或int,失败时返回array。所以像这样编码 public function createAddressBook($bookName) { if (true) { return 'OK'; } return ['error' => 'FAIL']; } 该方法的真正代码是API对新书ID的请求,它是int或string,我不知道将返回什么值。我的测试代码如下: public functi
string或int
,失败时返回array
。所以像这样编码
public function createAddressBook($bookName)
{
if (true)
{
return 'OK';
}
return ['error' => 'FAIL'];
}
该方法的真正代码是API对新书ID的请求,它是int或string
,我不知道将返回什么值。我的测试代码如下:
public function setUp()
{
$this->stub = $this->createMock(\My\Class::class);
}
public function tearDown()
{
$this->stub = null;
}
public function testCreateAddressBook()
{
$this->stub->method('createAddressBook')->with('TestBookName');
$result = $this->stub->createAddressBook('TestBookName');
//what to do now?
}
我的问题是如何测试返回值类型的方法?您可以使用is_array()、is_string()、is_int()或gettype()函数,或者使用!==操作员检查类型和值是否不同
is_array($var)检查变量是否为数组
is_string($var)检查它是否为字符串
is_int($var)检查它是否为整数
gettype($var)返回变量的类型
或者您可以使用phpUnit函数对此进行测试:
$this->assertIsInt($var)
$this->assertisearray($var)
$this->assertInternalType('some_datata_type',$var) 谢谢!老实说,我认为存在PHPUnit方式)
assertinernaltype
是“PHPUnit”方式(如答案中所述)