断言两个对象相等 PHP Codeception 失败

时间:2021-06-09 20:18:01

标签: php unit-testing object testing codeception

我写了一个小测试来检查函数返回的数据是否符合我的预期。

/**
 * @dataProvider successDataProvider
 */
public function testSuccessProvide(array $responses, ?MyResponse $myResponse): void
{
    $dataProvider = new MyDataProvider($this->tester->mockGuzzleClient($responses));
    $dataProviderResponse = $dataProvider->provide(Stub::makeEmpty(CheckRequest::class, [
        'nameUser' => new Name('test', 'test', 'test')
    ]));
    $this->assertEqualsCanonicalizing($myResponse, $dataProviderResponse);
}

我的函数包含我按预期准备的对象,函数返回的正确数据

public function successDataProvider(): array
    {
        return [
            [
                'httpResponses' => [
                    $this->createSuccessResponse('simple')
                ],
                'dataProviderResponse' => new MyResponse(
                    [
                        (object)[
                            "type" => "Ответчик",
                            "subType" => "РешенияПерв",
                            "year" => 2017,
                            "description" => "Оставить без изменения решение, а апелляционную жалобу - без удовлетворения (п.1 ст.269 АПК)",
                            "sum" => 10576596.8,
                            "count" => 1
                        ],
                        (object)[
                            "type" => "Ответчик",
                            "subType" => "РешенияПерв",
                            "year" => 2017,
                            "description" => "Оставить решение (определение) суда первой инстанции и постановление суда апелляционной инстанции без изменения, а кассационную жалобу - без удовлетворения",
                            "sum" => 3519672.72,
                            "count" => 1
                        ],
                        (object)[
                            "type" => "Ответчик",
                            "subType" => "РешенияАпп",
                            "year" => 2017,
                            "description" => "Оставить без изменения решение, а апелляционную жалобу - без удовлетворения (п.1 ст.269 АПК)",
                            "sum" => 10576596.8,
                            "count" => 1
                        ],
                        (object)[
                            "type" => "Ответчик",
                            "subType" => "РешенияАпп",
                            "year" => 2017,
                            "description" => "Оставить решение (определение) суда первой инстанции и постановление суда апелляционной инстанции без изменения, а кассационную жалобу - без удовлетворения",
                            "sum" => 3519672.72,
                            "count" => 1
                        ],
                        (object)[
                            "type" => "Ответчик",
                            "subType" => "РешенияКасс",
                            "year" => 2017,
                            "description" => "Оставить решение (определение) суда первой инстанции и постановление суда апелляционной инстанции без изменения, а кассационную жалобу - без удовлетворения",
                            "sum" => 3519672.72,
                            "count" => 1
                        ],
                        (object)[
                            "type" => "Ответчик",
                            "subType" => "РешенияПерв",
                            "year" => 2021,
                            "description" => "Нет решения",
                            "sum" => 44014383.56,
                            "count" => 1
                        ]
                    ]
                ),
            ]
        ];
    }

我在左边附上了一张图片:我的数据,右边是测试正确的数据。如您所见,我的数据 (stdClass Object & 000000001b2e5dd1000000001e790f83) 与结果不匹配(命名空间 my function Object & 000000001b2e5d1d000000001e790f83)

enter image description here

我收到如下错误:“断言两个对象相等失败。” 问题是,我如何比较两个对象,或者,如何摆脱测试中的命名空间依赖关系,以便我能够成功通过它?? 提前感谢您的回答!

0 个答案:

没有答案
相关问题