Анализ требований и пробная версия

Постановка задачи. Проектирование интерфейса компонента через юнит-тестирование и разработка абстрактных типов данных. Сознание первоначальной простой версии библиотеки.

Скрытый контент
Комментарии (12)
urlportal
2019-09-19 11:21

Благодарю за урок! Полезно на моём уровне

Ответить
Alex
2019-09-20 05:20

Спасибо Дмитрий. Как всегда, понятно и познавательно.

Ответить
Alex
2019-09-20 05:51

(ООП) Просьба. Дмитрий, не могли бы вы в одном из следующих видео хоть мимолётом упомянуть зачем в symfony делают следующее Controller exntends AbstractController а он в свою очередь имплементит ServiceSubscriberInterface. Почему не прямо имплементит интерфейс, а через абстрактный класс? Какой профит? Если можно, на маленьком примере. Где это можно применять в практике? Благодарю за ценные уроки и труд.

Ответить
Дмитрий Елисеев
2020-01-27 21:36

Класс Controller теперь deprecated.

Ответить
friend
2019-11-01 19:46

1) В конструкторе класса Ip вы добавили валидацию адресов ipv6.

Для корректной валидации необходимо добавить использование ключей FILTER_FLAG_IPV*:

filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4)
filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)

2) Указанный вами адрес 8:8:8:8:8:8:8:8 функция валидации не воспринимает;

3) Добавьте пожалуйста ваши исходники кода этих уроков.

Ответить
friend
2019-11-01 20:08

Скрин на 13:40, у меня при запуске этого теста сервис возвращает ошибку:

1) LocatorTest::testNotFound
file_get_contents(https://api.ipgeolocation.io/ipgeo?apiKey=10e0a6cf15+&ip=127.0.0.1): failed to open stream: HTTP request failed! HTTP/1.1 423 Locked

Подскажите, как ее описать в тестах?

Ответить
Андрей
2020-02-14 15:45

Проверять ответ, если ответ message == 'Provided API key is not valid.'

  • throw new Exception('Ошибка Api ключа.');
Ответить
Дмитрий Елисеев
2020-02-14 18:32

Unit-тесты не должны ходить в сторонние сервисы.

В следующем эпизоде показано, как вынести HTTP клиент и подменять его в тестах так, чтобы не было реальных обращений на сервер.

Ответить
Дмитрий
2020-03-30 23:18

Подскажите, я наверное упустил при изучении теории, что означает: : ?Location : ?string без знака вопроса, понятно, тип возвращаемых данных, а вот с вопросом, впервые вижу :(

Ответить
Дмитрий Елисеев
2020-03-31 11:02

Знак вопроса показывает, что может быть null.

Ответить
Дмитрий
2020-04-03 12:22

у Google ipv6 - 2001:4860:4860::8888

Ответить
Дмитрий
2020-04-03 12:49
public function testNotFound(): void
{
        $location = null;
        self::assertNull($location);
}

так работает

Ответить
Зарегистрируйтесь или войдите чтобы оставить комментарий