【问题标题】:Laravel Eloquent, assert that collection contains itemLaravel Eloquent,断言集合包含项目
【发布时间】:2017-04-23 16:56:12
【问题描述】:

如何断言(在 PHPUnit 测试中)Eloquent 集合包含一个项目?

类似这样的:

$expected = factory::create(Item::class)->create();
$eloquentCollection = someData(); // Item::orderBy(...)->...->get();
$this->assertContains($expected, $eloquentCollection);

【问题讨论】:

    标签: php laravel-5 eloquent phpunit


    【解决方案1】:

    您可以使用contains 方法将assertTrue 测试为:

    $this->assertTrue($eloquentCollection->contains($expected));
    

    您还可以将键/值对传递给 contains 方法,该方法将确定给定对是否存在于集合中:

    $this->assertTrue($eloquentCollection->contains('id', $expected->id));
    

    【讨论】:

    • 是的,看起来可行。但它更混乱:(我认为已经有内置的断言。
    • 我认为没有任何内置功能。这也是我们主要做断言的方式。不知何故,我觉得它更具可读性。
    猜你喜欢
    • 1970-01-01
    • 2017-12-02
    • 1970-01-01
    • 2018-11-11
    • 1970-01-01
    • 2017-03-26
    • 2018-06-26
    • 1970-01-01
    • 2013-09-24
    相关资源
    最近更新 更多