[英]Failed asserting that two objects are equal PHP Codeception
我寫了一個小測試來檢查function返回的數據是否符合我的預期。
/**
* @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);
}
我的 function 包含我按預期准備的對象,function 返回的正確數據
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
]
]
),
]
];
}
我在左邊附上了一張圖片:我的數據,右邊的數據對測試是正確的。 As you can see my data (stdClass Object & 000000001b2e5dd1000000001e790f83) does not match the result (namespace my function Object & 000000001b2e5d1d000000001e790f83)
我收到如下錯誤:“斷言兩個對象相等時失敗。” 問題是,我怎樣才能比較兩個對象或者,我怎樣才能擺脫測試中的命名空間依賴,以便我能夠成功通過它? 提前感謝您的回答!
您不應期望(對象)返回,而是返回數據,例如 ClassResponseData,並期望僅獲得 ClassResponseData object。 object 是 class 的特定實例。 例如,您的特定機器或數據響應。 您期待一些特定的東西,但在測試中您剛剛發送了 object 並期待 Class object。
public function successDataProvider(): array
{
return [
[
'httpResponses' => [
$this->createSuccessResponse('simple')
],
'dataProviderResponse' => new ClassResponseData(
[
new ClassResponseData(
"Ответчик",
"РешенияПерв",
2017,
"Оставить без изменения решение, а апелляционную жалобу - без удовлетворения (п.1 ст.269 АПК)",
10576596.8,
1
),
new ClassResponseData(...),
]
),
],
...
];
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.