Незначительное обновление: нормально использовать методы экземпляра в качестве провайдера, начиная с версии 3.2 (или где-то около этого).Посмотрите на комментарии
Поставщик должен выглядеть следующим образом.
public static function providerLogger() {
return array(
array(new Logger)
);
}
Прежде всего: метод должен быть static , если вы используетеВерсия phpunit ниже 3.3.
Массив s важен.Это не так сложно понять.Внешний массив имеет одно значение для каждой итерации, которую должен вызывать тест.Здесь тест просто вызывают один раз.Внутренние массивы - это параметры (по порядку), с которыми вызывается тест.Ваш тест ожидает ровно один параметр, поэтому внутренним массивам всегда нужно ровно одно значение.Еще один небольшой пример
public static function addTestProvider () {
return array(
/* First + Second = third? */
array(1,4,5),
array(3,3,6),
array(5,5,6)
);
}
public function testAdd ($a, $b, $result) {
$this->assertEquals($result, $a + $b);
}
Здесь testAdd выполняется 3 раза, по одному для каждого второго уровня массив , и он получает значения из внутреннего массив с.Вы можете заметить, что тест не пройден и выдает сообщение, в котором итерация набора данных (здесь # 3, потому что 5 + 5 не 6;)) завершилась неудачей.