为了账号安全,请及时绑定邮箱和手机立即绑定

PHPunit:如何从外部函数更改 Mock 对象的属性

PHPunit:如何从外部函数更改 Mock 对象的属性

PHP
森栏 2021-06-30 13:54:23
我正在使用 Symfony 并且我正在尝试测试“Student”类中的 addStudentCard 函数,该函数将“StudentCard”对象添加到 $studentCards 数组集合属性中,并将“Student”对象添加到“StudentCard”类中的 $student 属性中。我是这样做的:class StudentCard {  private $student;  public function getStudent();  public function setStudent();  //...}class Student {  private $studentCards;  public function getStudentCards();  public function addStudentCard(StudentCard $studentCard){    $studentCard->setStudent($this);    $this->studentCards[] = $studentCard;    return $this;  //...}我想要实现的是使用 MockBuilder 测试此 addStudentCard 函数,我已经通过以下方式在不使用模拟的情况下完成了此操作:class StudentTest extends AbstractTestCase {  public function testAddStudentCard(){    $studentCard = new StudentCard();    $student = new Student();    $student->addStudentCard($studentCard);    $student->assertSame($studentCard, $student->getStudentCards()[0]);    $student->assertSame($student, $studentCard->getStudent());}这按预期工作没有问题。我想要的是替换该行:$studentCard = new StudentCard();像这样:$studentCard = $this->getMockBuilder(StudentCard::class)->getMock();但我得到的是错误:断言 null 与 Student 类的对象相同。
查看完整描述

2 回答

  • 2 回答
  • 0 关注
  • 172 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信