За последние 24 часа нас посетили 10097 программистов и 1143 робота. Сейчас ищут 439 программистов ...

Тестирование event и listener в laravel

Тема в разделе "Версионность, тестирование и развёртывание", создана пользователем Алекс8, 18 сен 2020.

  1. Алекс8

    Алекс8 Активный пользователь

    С нами с:
    18 май 2017
    Сообщения:
    1.730
    Симпатии:
    359
    Привет всем. Ребят а как сделать юнит тест для события и для слушателя? Они ничего не возвращают.. в фич тесте хоть можно проверить запускался ивент или нет.. а тут не понятно что тестировать)
     
  2. Алекс8

    Алекс8 Активный пользователь

    С нами с:
    18 май 2017
    Сообщения:
    1.730
    Симпатии:
    359
    @mkramer ты все знаешь))) подскажешь?)
     
  3. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.390
    Симпатии:
    1.701
  4. Алекс8

    Алекс8 Активный пользователь

    С нами с:
    18 май 2017
    Сообщения:
    1.730
    Симпатии:
    359
    привет)) да в фич тестах я сделал так.. там норм все...
    я про юнит тесты.. мы ж никак не можем листенер протестить.. потому что он ничего не возвращает..
     
  5. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.390
    Симпатии:
    1.701
    Можем протестить, делает ли он при вызове, что должен
     
  6. Алекс8

    Алекс8 Активный пользователь

    С нами с:
    18 май 2017
    Сообщения:
    1.730
    Симпатии:
    359
    да тут засада)))
    Имеем Laravel + Doctrine
    на ивентах доктрины (persist, flush, delete) висит ивент ларковский которые потом вызывает листенер... при изменении структуры категорий или при добавления чего то в категорию надо пересчитывать количество элементов в категории...
    с проблемами столкнулся со следующими..
    1. Когда руками эндпоинт дергаешь - все создается, ивенты срабатывают, листенер пересчитывает что надо пересчитать...
    2. В фич тесте листенер не просто не вызывается... т.е. ивенты все срабатывают, а листенер почему то не работает.
    3. Я в фьюч тесте просто проверяю как срабатывает ивент.. норм все... хотелось проверить в фич тесте как пересчитывается количество элементов в категории.. но не судьба.. я создалю дерево категорий, добавляю туда элементы.. хочется в респонсе увидеть не нули)) но изза того что листенер не запускается - везде нули))
    4. Юнит тест сделать не получается.. там везде фейковые значения.. т.е. особо даже и не сделаешь же дерево категорий и в них не положишь элементы.. а потом же надо через связь в сущности сделать count количества элементов.. а тут вообще хз как в юнит тестах это решить.. и вот получается что у меня листенер и сервис пересчёта - не покрыты тестами))
     
  7. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.390
    Симпатии:
    1.701
    Ну так покрой не листенер, а конкретно пересчёт