Я сейчас нахожусь в процессе написания юнит-тестов для Черты.Эта черта включала метод registryPersist (), который в свою очередь вызывает метод Facade Registry :: persist ().Этот метод, как следует из названия, сохраняет значение реестра в базе данных, а затем вызывает Registry :: set () для установки реестра в локальную область.Это довольно простая процедура.
Я попытался следовать предложению из документов Laravel и высмеивать метод Registry :: persist () с помощью следующего кода:
Registry::shouldReceive('persist')->with('test', 'ok', 'model.users')
Однако, учитывая, что persist также вызывает set я получаю исключение BadMethodCallException , потому что set не является поддельным.( Получил RegistryAccessControl :: set (), но ожидания не были указаны )
В официальных документах, посвященных издевательствам, предлагается создать фиктивный экземпляр, но когда я действительно пытаюсь вызвать,Метод черт, фасад не является насмешливым.
$user = factory(User::class)->create();
$user->registrySet('test', 'ok');
Метод черт:
public function registryPersist(string $name, $value): void
{
Registry::persist(
$name,
$value,
$this->getNamespace()
);
}
Есть ли способ эффективно протестировать этот метод?
Кроме того,учитывая, что registrySet () только перенаправляет параметры на фасад, вы думаете, что тест, который я пытаюсь написать, является хорошей идеей?
Заранее спасибо.