Я создал этот массив объектов:
$ad_1 = new AdUnit(array('id' => '1', 'name' => 'Ad_1', 'description' => 'great ad', 'code' => 'alpha', 'widget_id' => '123')); $ad_2 = new AdUnit(array('id' => '2', 'name' => 'Ad_2', 'description' => 'good ad', 'code' => 'delta', 'widget_id' => '456')); $ad_3 = new AdUnit(array('id' => '3', 'name' => 'Ad_3', 'description' => 'bad ad', 'code' => 'sigma', 'widget_id' => '789')); $adUnitArr = array($ad_1, $ad_2, $ad_3);
и я хочу проверить, что случайное объявление, которое я получил от функции, существует в массиве. код для показа выглядит следующим образом:
$fixture = new AdGroup(); $fixture->setAds($adUnitArr); $randad = $fixture->getRandomAd();
теперь я хочу проверить, содержит ли массив случайное объявление, которое я получил, что я смог сделать вот так:
$this->assertEquals(in_array($randad, $adUnitArr), 1); //check if ad in array
но мой вопрос в том, есть ли утверждение или какой-то другой способ проверить эту вещь лучше, чем то, как я это сделал? Я попытался использовать assertArrayHasKey
но получил следующую ошибку:
PHPUnit_Framework_Exception: Argument #1 (No Value) of PHPUnit_Framework_Assert::assertArrayHasKey() must be a integer or string
любая идея, пожалуйста? спасибо
Попробуйте метод assertContains:
$this->assertContains( $randad, $adUnitArr );