Костыльно, но работает, ищу более элегантное решение
Кратко -- генерим из массива значений массив массивов, в каждом из которых лежит тип элементов начального массива и итерируем тест по каждому типу, сравнивая с необходимыми типами
Примечание 1: тип float единственный отдается как double:
php.net/manual/ru/function.gettype.phpПримечание 2: Если в проверяемом массиве много значений, то нужно сделать так, чтобы провайдер возвращал только массивы с уникальными типами
/**
* @dataProvider providerTypesOfArraysElements
*/
public function testTypeInArray($type)
{
$typesCorrect = ['integer', 'double'];
$this->assertContains($type, $typesCorrect);
}
public function providerTypesOfArraysElements()
{
$arr = [28, 1, 7.3];
return array_map(function($val) {
return [gettype($val)];
}, $arr);
}