ФорумСообществоФлейм → инлайн тестинг, кому было бы интересно?

инлайн тестинг, кому было бы интересно?

  • AlexanderC

    Сообщения: 270 Репутация: N Группа: Кто попало

    Spritz 26 декабря 2012 г. 22:12

    Хай ол.
    Нужна ли вообще такая фигня как инлайн тестинг, т.е. примерно так:

    /**
    * @param mixed $a
    * @param callable $b
    * @param array $c
    *
    * @assert {
    * @params {
    * 2
    * 2
    * [2]
    * }
    * @assertions {
    * $result == 6
    * segswegw // this is messed thing, but don't worry about!!!
    * !is_int($result)
    * is_scalar($result)
    * }
    * }
    */
    function exampleTestFunction($a, $b, array $c)
    {
    return $a + $b + $c[0];
    }


    есессьно + класс/класс + методы…

    Вообще удобно при ТДД для простых тестов… Пока без моков.

    ????? ну что скажете?
  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz 26 декабря 2012 г. 22:20, спустя 7 минут 38 секунд

    и таки что? где реализация, юс кейсы…
    ιιlllιlllι унц-унц
  • AlexanderC

    Сообщения: 270 Репутация: N Группа: Кто попало

    Spritz 26 декабря 2012 г. 22:21, спустя 1 минуту 24 секунды

    Таки если интересно выложу на гитхаб + композер конфиг добавлю… та так пока у меня в личной репе )))
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 26 декабря 2012 г. 22:41, спустя 19 минут 30 секунд

    мне не нравится код в комментариях. в любом языке)
    Сапожник без сапог
  • AlexanderC

    Сообщения: 270 Репутация: N Группа: Кто попало

    Spritz 26 декабря 2012 г. 23:04, спустя 23 минуты 19 секунд

    https://github.com/AlexanderC/ITest- плз и ссылочка
    Спустя 14 сек.
    ну дюд- ет на любителя )))
  • Timur

    Сообщения: 1068 Репутация: N Группа: Джедаи

    Spritz 27 декабря 2012 г. 9:49, спустя 10 часов 44 минуты 45 секунд

    Оригинально. Примеров бы можно побольше и поинтересней.

    Хотя непосредственно код в аннотациях действительно странно выглядит. Всё-таки обычно их используют для всяких мета-данных, что-то вроде расширения языка.
    И почему зависимость от 5.4? Понятно, что 5.5 уже скоро, но 5.3 ещё пока очень популярный.

    В принципе, для примитивных тестов можно вспомнить про ассерты. В них код тоже нужно писать строкой, которая eval'ится при включенном ASSERT_ACTIVE. Можно навесить коллбеки на фейлы.
  • AlexanderC

    Сообщения: 270 Репутация: N Группа: Кто попало

    Spritz 27 декабря 2012 г. 12:04, спустя 2 часа 15 минут 7 секунд

    Для простых тестов у меня был более простой класс.

    Код в аннотациях- согласен, но: можно было обернуть всё как какие ни-ть метаданные(метаязык), но данное решение показалось более расширенным с возможностью добавлять любые конструкции которые есть и в пхп… Следовательно нафиг разрабу учить как пользоваться новым костылём )))

    ассерт ет хорошо- но ет непосредственно в коде…. а тут в докблоке. т.е. он будет обрабатываться и выполняться только когда етого хочет разраб(а не всегда или после проверки). Ет не юнит тесты как-ни-как
    Спустя 43 сек.
    пхп 5.4 потому как использовал чуть изменённый синтаксис- 5.3- там менять не многое, просто уже привык даже к [] …. )
    Спустя 144 сек.
    П.С. пример на гитхабе + главное понять одно- каждый ряд из @парамс используется как передаваемый аргумент, а из @ассертс - ассерт который должен возврашхать булевое значение. А уже что там будет- ваше дело… может быть и замыкание, и инстанс класса итдитп
    Спустя 95 сек.
    П.П.С сама идея была реализована давно- сейчас переписал код с коленки на более приличный…

    Кстати- можете предлогать дополнения! кому- что нужно для полного … как говорится )
  • Timur

    Сообщения: 1068 Репутация: N Группа: Джедаи

    Spritz 27 декабря 2012 г. 12:42, спустя 38 минут 28 секунд

    ассерт ет хорошо- но ет непосредственно в коде…. а тут в докблоке. т.е. он будет обрабатываться и выполняться только когда етого хочет разраб(а не всегда или после проверки)

    ну так и ассерты будут выполняться тоже если разраб включит ASSERT_ACTIVE, иначе просто игнориться. Ну само собой, при условии что код записан как строка (т.е. assert('$a == $b'), вместо assert($a == $b))

    В общем, пока применения лично для себя не вижу, но идея интересная.
  • AlexanderC

    Сообщения: 270 Репутация: N Группа: Кто попало

    Spritz 27 декабря 2012 г. 16:08, спустя 3 часа 25 минут 55 секунд

    ну насчёт применения- дело ваше. Удобно интегрировать и использовать как праймери степ в тдд + последуюшхее уникс тест коверейдж ))) ту ето можно и в дженкинс прикрутить помимо унит тестов- как говорится тыкать нужно во всех местах))
  • master

    Сообщения: 3244 Репутация: N Группа: Джедаи

    Spritz 27 декабря 2012 г. 18:15, спустя 2 часа 6 минут 20 секунд

    тесты отдельно не писать желание вижу я
    расти свойство имеет кодовая база однако
    и от тестов совсем не избавишься ты
    в двух местах в итоге тесты получишь ты

    мне не нравится код в комментариях. в любом языке)

    +
    поведение программы никак не должно зависеть от комментариев в коде, например, потому что комментарии могут быть вырезаны обфускатором
    не всё полезно, что в swap полезло
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 27 декабря 2012 г. 18:19, спустя 4 минуты 12 секунд

    поведение программы никак не должно зависеть от комментариев в коде, например, потому что комментарии могут быть вырезаны обфускатором

    так уже никто не делает
  • master

    Сообщения: 3244 Репутация: N Группа: Джедаи

    Spritz 27 декабря 2012 г. 20:14, спустя 1 час 55 минут 4 секунды

    так уже никто не делает

    а АлександерЦ что предлагает?
    не всё полезно, что в swap полезло
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 27 декабря 2012 г. 20:59, спустя 45 минут 1 секунду

    я говорю, что никто уже не проходится обфускатором, что б вырезать комментарии
  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz 27 декабря 2012 г. 21:49, спустя 50 минут 14 секунд

    стоит ли заводить нечто параллельное юнит-тестам?
    ιιlllιlllι унц-унц
  • master

    Сообщения: 3244 Репутация: N Группа: Джедаи

    Spritz 28 декабря 2012 г. 7:13, спустя 9 часов 24 минуты 2 секунды

    я говорю, что никто уже не проходится обфускатором, что б вырезать комментарии

    инфа 100%?
    а зенд оптимайзер или ионкуб какой-нибудь что делают?
    не всё полезно, что в swap полезло

Пожалуйста, авторизуйтесь, чтобы написать комментарий!