Php 无法断言可遍历对象包含
测试: 工作正常,但如果将数组更改为对象:Php 无法断言可遍历对象包含,php,phpunit,Php,Phpunit,测试: 工作正常,但如果将数组更改为对象: $this->assertThat( array("James Bond", 'james@bond.com', '12345'), $this->contains('James Bond') ); 那么我有一个错误: 断言可遍历对象包含“James Bond”失败 如何将assertThat与object和contains方法一起使用 我的用户类:
$this->assertThat(
array("James Bond", 'james@bond.com', '12345'),
$this->contains('James Bond')
);
那么我有一个错误:
断言可遍历对象包含“James Bond”失败
如何将assertThat与object和contains方法一起使用
我的用户类:
$this->assertThat(
new User("James Bond", 'james@bond.com', '12345'),
$this->contains('James Bond')
);
您没有提供有关用户对象的详细信息,但显然这是一个可遍历的概念 你试过这个功能吗
class User
{
private $name;
private $mail;
private $pass;
public function __construct($name, $mail, $pass)
{
$this->name = $name;
$this->mail = $mail;
$this->pass = $pass;
}
public function getName()
{
return $this->name;
}
public function getMail()
{
return $this->mail;
}
public function getPass()
{
return $this->pass;
}
}
编辑:
实际上,contains
将检查数组值,这里的属性是私有的(这很好),因此检查属性值的唯一方法是使用其getter
这是你想要做的
$this->assertThat(
iterator_to_array(new User("James Bond", 'james@bond.com', '12345')),
$this->contains('James Bond')
);
您没有提供有关用户对象的详细信息,但显然这是一个可遍历的概念 你试过这个功能吗
class User
{
private $name;
private $mail;
private $pass;
public function __construct($name, $mail, $pass)
{
$this->name = $name;
$this->mail = $mail;
$this->pass = $pass;
}
public function getName()
{
return $this->name;
}
public function getMail()
{
return $this->mail;
}
public function getPass()
{
return $this->pass;
}
}
编辑:
实际上,contains
将检查数组值,这里的属性是私有的(这很好),因此检查属性值的唯一方法是使用其getter
这是你想要做的
$this->assertThat(
iterator_to_array(new User("James Bond", 'james@bond.com', '12345')),
$this->contains('James Bond')
);
你就不能这样做:
$this->assertContains('jamesbond',$obj)代码>?你就不能这样做:$this->assertContains('jamesbond',$obj)代码>?用户它是一个简单的PHP类,包含名称、电子邮件、传递和获取字段。您的示例throw:TypeError:Argument 1传递给迭代器_to_array()必须通过编辑您的问题来实现可遍历的接口,用户提供有关用户对象的详细信息(结构)的实例。如果我们不知道您正在测试什么,我们将无法真正帮助您编辑我的答案!User它是一个简单的PHP类,包含字段名称、email、pass和getter。您的示例throw:TypeError:Argument 1传递给迭代器_to_array()必须通过编辑您的问题来实现可遍历的接口,用户提供有关用户对象的详细信息(结构)的实例。如果我们不知道您正在测试什么,我们将无法真正帮助您编辑我的答案!