【发布时间】:2019-12-11 20:56:37
【问题描述】:
我正在使用带有学说 ORM 的 symfony3 我正在测试一个控制器动作,但断言失败,因为 created at 不同
public function testGetOneJobFound()
{
$expected = '{"id":"a961c741-1c32-11ea-bfc6-0242ac130003","service_id":804040,"zipcode_id":"10115","title":"title","description":"decription","date_to_be_done":"2018-11-11T00:00:00+00:00","created_at":"2019-12-11T14:55:48+00:00"}';
$this->client->request('GET', '/job/a961c741-1c32-11ea-bfc6-0242ac130003');
$this->assertEquals(Response::HTTP_OK, $this->client->getResponse()->getStatusCode());
$this->assertEquals($expected, $this->client->getResponse()->getContent());
}
单元测试结果: 时间:4.49 秒,内存:22.00MB
有 1 次失败:
1) Tests\AppBundle\Controller\JobControllerTest::testGetOneJobFound
Failed asserting that two strings are equal.
--- Expected
+++ Actual
@@ @@
-'{"id":"a961c741-1c32-11ea-bfc6-0242ac130003","service_id":804040,"zipcode_id":"10115","title":"title","description":"decription","date_to_be_done":"2018-11-11T00:00:00+00:00","created_at":"2019-12-11T14:55:48+00:00"}'
+'{"id":"a961c741-1c32-11ea-bfc6-0242ac130003","service_id":804040,"zipcode_id":"10115","title":"title","description":"decription","date_to_be_done":"2018-11-11T00:00:00+00:00","created_at":"2019-12-11T20:43:36+00:00"}'
如您所见,除了 created at 部分之外,响应看起来相同。
如何忽略响应中的 created_at。
【问题讨论】:
-
一种选择是转换为数组,取消设置 created_at 并进行比较。
-
@FelippeDuarte 我虽然有同样的想法,但我不确定这是否是最佳做法
标签: php unit-testing symfony doctrine-orm