Laravel Eloquent,断言集合包含项目

问题描述 投票:0回答:2

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

类似这样的:

$expected = factory::create(Item::class)->create();
$eloquentCollection = someData(); // Item::orderBy(...)->...->get();
$this->assertContains($expected, $eloquentCollection);
php laravel-5 eloquent phpunit
2个回答
49
投票

您可以使用

contains
方法来
assertTrue
进行测试:

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

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

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

0
投票

在 PHPUnit 10.4 中有

assertContains

$needle = 'a';
$haystack = ['a', 'b', 'c'];
$this->assertContains($needle, $haystack);

https://docs.phpunit.de/en/10.4/assertions.html#assertcontains

© www.soinside.com 2019 - 2024. All rights reserved.