Как подделать ресурс для модульного теста в PHP?Php

Кемеровские программисты php общаются здесь
Ответить
Гость
 Как подделать ресурс для модульного теста в PHP?

Сообщение Гость »


У меня был метод, который открывал сокетное соединение, использовал его, а затем закрывал. Чтобы сделать его тестируемым, я вынес работу с соединением в отдельные методы (см. код ниже).

Теперь я хочу написать модульный тест для barIntrefaceMethod() и мне нужно имитировать метод openConnection(). Другими словами, мне нужен поддельный ресурс.

Возможно ли это / Как «вручную» создать переменную типа ресурс в PHP (чтобы подделать дескрипторы типа «открытых файлов, подключений к базе данных, областей холста изображения и лайк» и т. д.)?

FooClass
класс FooClass { публичная функция barIntrefaceMethod() { $connection = $this->openConnection(); fwrite($connection, 'некоторые данные'); $ответ = ''; while (!feof($connection)) { $response .= fgets($connection, 128); } вернуть $ответ; $this->closeConnection($connection); } защищенная функция openConnection() { $ошибка = 0; $errstr = ноль; $connection = fsockopen($this->host, $this->port, $errno, $errstr); если (!$соединение) { // TODO Используйте конкретное исключение! throw new Exception('Соединение не удалось!' . ' ' . $errno . ' ' . $errstr); } вернуть $соединение; } защищенная функция closeConnection (дескриптор ресурса $) { вернуть fclose($handle); } }
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»