Ваш поставщик данных должен предоставить ожидаемый результат, а также параметры метода. Простой пример приведен в документации по PHPUnit.
public function attributesValuesProvider()
{
return [
[null, [], [], null],
[new Customer, [], [], CustomerMetadataInterface::ENTITY_TYPE_CUSTOMER],
[new Address, [], [], AddressMetadataInterface::ENTITY_TYPE_ADDRESS],
];
}
Тест, использующий поставщик данных, будет выполнен один раз для каждой строки в поставщике со всеми значениями встрока передана в качестве аргументов.Таким образом, ваш тест должен принять все четыре аргумента, вызвать метод и убедиться, что ожидаемый результат был возвращен.
/**
* @dataProvider attributesValuesProvider
*/
public function testMyFunction($object, $diff, $prev, $expected_result) {
$example = new YourClass();
// or maybe you already created this object in your setUp method?
$actual_result = $example->myFunction($object, $diff, $prev);
$this->assertSame($expected_result, $actual_result);
}