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

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

  • AlexanderC

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

    Spritz 28 декабря 2012 г. 11:15, спустя 1 минуту 16 секунд

    ну тут расчитано на один, так как 10 с разными параметрами уже нужно в юнит тестить…
  • master

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

    Spritz 28 декабря 2012 г. 11:16, спустя 41 секунду

    * @assert {
         *      @params {
         *          function(array $arr) { return $arr[0]; }
         *          function(array $arr) { return $arr[0]; }
         *          function(array $arr) { return $arr[0]; }
         *      }

    вообще охуеть. ты потом разберёшься в трейсе ошибки, что куда было передано и почему вылетело?
    не всё полезно, что в swap полезло
  • AlexanderC

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

    Spritz 28 декабря 2012 г. 11:20, спустя 4 минуты 47 секунд

    ХД, да, указывается тест и кусок кода который провалил тест…. {+++208+++} Проверь тест (екзампл) в либе…

    - Assertion Failed on Pyha\Libs\ITest\Example::#instance: (Exception during assertion) [Trying to get property of non-object] $result->foo->baz == 'hey, we do not have such property'
    - Assertion Failed on Pyha\Libs\ITest\Example::#instance: (Failed validating 'object') !is_string($result->foo)
    - Assertion Failed on Pyha\Libs\ITest\Example::simpleTest(): (Failed validating 'integer 4') !is_scalar($result)
    - Assertion Failed on Pyha\Libs\ITest\exampleTestFunction(): (Failed validating 'integer 6') !is_int($result)

    ~ 4 fail occurred during the test(193 case, 10 assertion).
  • master

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

    Spritz 28 декабря 2012 г. 11:24, спустя 3 минуты 31 секунду

    а с дебаггером поиграться - брекпоинт поставить, пошагово выполнить - с этим что делать?
    не всё полезно, что в swap полезло
  • AlexanderC

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

    Spritz 28 декабря 2012 г. 11:29, спустя 5 минут

    можно более внятно обьяснить зачем хочешь денагером??? тогда уж в коде пиши ассерты… но ет бад практис, сам знаешхь… я, допустим, сначала пишу либу(если менее 15-20 классов) и потом дебажу… во время разработки всё в голове держу… тут дебажить с брейкпоинтами в особых слукчаях нужно. А так разработал -> запустил инлайн тесты -> работеат [да -> юнит] [нет -> дебажить и повторить цикл] {+++17+++} а в доктрине как с аннотациями????????????? {+++13+++} да и во многих других хренях…
  • master

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

    Spritz 28 декабря 2012 г. 11:47, спустя 17 минут 38 секунд

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

    тогда уж в коде пиши ассерты… но ет бад практис, сам знаешхь…

    не знаю. почему?
    не всё полезно, что в swap полезло
  • AlexanderC

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

    Spritz 28 декабря 2012 г. 12:37, спустя 50 минут 32 секунды

    ок, в продакшене код тоже ассертами сверкает на каждый метод или функцию?
    ето-ж тогда сколько лабуды выполняется во время))
  • master

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

    Spritz 28 декабря 2012 г. 14:41, спустя 2 часа 3 минуты 49 секунд

    AlexanderC, assert используется только для тестирования
    не всё полезно, что в swap полезло
  • AlexanderC

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

    Spritz 28 декабря 2012 г. 14:42, спустя 1 минуту 25 секунд

    хД… спасибо КЕП… мы наверное не поняли друг-друга))) {+++17+++} с наступаюшхими )
  • artoodetoo

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

    Spritz 29 декабря 2012 г. 2:08, спустя 11 часов 25 минут 32 секунды

    AlexanderC, видимо ты недостаточно убедителен. я тоже не увидел ни выгоды, ни новизны.
    с НГ!
    ιιlllιlllι унц-унц
  • adw0rd

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

    Spritz 22 января 2013 г. 16:01, спустя 24 дня 13 часов 52 минуты


    в конец отмороженные адепты юнит-тестов говорят, что тесты заменяют документацию.
    то есть вообще даже камментов никаких не пишите, а если кому надо, пусть лезет в тесты и разъёбывает, как этот класс можно использовать.

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


    Ну BDD пытается привить самодокументируемость по своей природе, но я считаю "полезным комментариям" место в коде, главное не злоупотреблять и следовать стандартам группы людей {+++82+++}

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

    /**
    * @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];
    }


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

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

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


    Я так понимаю были изобретены doctests? {+++153+++} Мне нравятся doctests, они в духе BDD, ты описываешь что функция должна делать в "документационном стиле" (по сути спеку) к ней и получаешь рабочий тест, профит! Плохо, что часто нужны конструкторы и деструкторы для тестов, и стает уже не так красиво
    adw/0
  • AlexanderC

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

    Spritz 22 января 2013 г. 15:42, спустя 23 часа 41 минуту 35 секунд

    именно доктесты!….

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