Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2014.07.20;
Скачать: CL | DM;

Вниз

DelphiSpec   Найти похожие ветки 

 
jack128_   (2013-12-22 23:45) [40]


> Kerk ©  

Зачем нужна типизация - это не интересно.
Ты лучше опиши, как ты представляешь себе работу именно в DelphiSpec.
Ну вот кто конкретно будет писать эти spec тесты и когда. Можно на примере своей работы если эта штука туда внедрена.

Ежели нет, то представим такой сценарий.
Вот пришел заказчик и сказал: "Ну это.. Типа маза такая есть, тут наши девки из бухгалтерии хотят видеть когда всякие челы в отпуск уходят/приходят. Ну вы там подкрутите что да как."
Вот кто/когда будет писать эти spec"ификации. Можешь описать?


 
Kerk ©   (2013-12-23 00:44) [41]

Я наверно так скажу. Если несколько моих попыток и даже ссылка на большую-большую статью не помогли, то оно тебе не нужно. Это нормально.


 
Пит   (2013-12-23 01:14) [42]

мне кажется Kerk не понял Jack"а... Точнее, понял, но нежелание расписать именно этот момент, который и является основным для продвижения (таки программирование как прикладная область или программинг ради программинга) - пугает.

Тем более, Женя понимает и даже считает полезным TDD. Поэтому если даже для него все столь неочевидно - у Ромы конкретные пробелы в плане донесения информации ))

Я не понял так вообще нихрена (

Это сугубо имхо, конечно. Не для того, чтобы расстроить Kerk"а, а для того, чтобы дать обратную связь от человека, уровня немного выше среднего и давно работающего с дельфи


 
antonn ©   (2013-12-23 08:50) [43]


> Kerk ©   (22.12.13 23:09) [39]

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


 
Kerk ©   (2013-12-23 12:07) [44]

Еще несколько мнений по ссылке.
http://programmers.stackexchange.com/questions/160411/what-is-a-legitimate-reason-to-use-cucumber

Нет, серьезно. Если потребность до сих пор не почувствовалась, значит оно вам не нужно. И это нормально. Мне трудно раскрыть тему шире, чем я уже раскрыл. Я все-таки программист в первую очередь, а не евангелист, например. Если реально есть интерес чуть дальше, чем поболтать на форуме, то в интернете очень много материалов по Gherkin, Cucumber, SpecFlow и т.д. Есть книжка "specification by example" и некоторые другие. Но опять же - совсем не обещаю, что оно вам реально нужно.


 
Kerk ©   (2013-12-26 00:10) [45]

Feature: Accounts

Background:
 Given users exist:
   | id | name  | password |
   | 1  | Roman | pass1    |  
   | 2  | Other | pass2    |


Scenario: Correct Login
 Given my name is "Roman"
   And my password is "pass1"
 When I login
 Then I have access to private messages

Scenario: Incorrect Login
 Given my name is "Roman"
   And my password is "pass2"
 When I login
 Then access denied

Scenario: Remove user
 Given my name is "Roman"
   And my password is "pass1"
   But user "Roman" has been removed
 When I login
 Then access denied


Добавил поддержку блока "background". Он позволяет задать контекст выполнения сценариев.


 
Dennis I. Komarov ©   (2013-12-26 09:51) [46]

Ром, ты извиняй, но ИМХО достичь обратную связь с помощью скриптов будет очень очень сложно, а время на их написание потратишь ты... Думаю что толк из этого будет, когда "не программисты" будут писать, а не читать... Посмотри спецификацию BPMN ;)


 
Kerk ©   (2013-12-26 12:15) [47]

Я в этой ветке реально попал под перекрестный огонь двух лагерей. Одни полностью отказывают "не программистам" в мыслительной деятельности, им задачи ставятся в виде "Ну это.. Типа маза такая есть...". С точки зрения других "не программисты" вполне способны нарисовать формальную диаграмму бизнес-процесса. Причем оба по-своему правы.

Поэтому я и разместился где-то между :)


 
Dennis I. Komarov ©   (2013-12-26 13:38) [48]

рисовать проще чем писать...


 
Inovet ©   (2013-12-26 14:35) [49]

> [48] Dennis I. Komarov ©   (26.12.13 13:38)
> рисовать проще чем писать...

Это смотря что рисовать и что писать.


 
Юрий Зотов ©   (2013-12-26 16:22) [50]

> Kerk ©   (26.12.13 12:15) [47]

"Непрограммисты" бывают разные. Работал и с такими, которые не только бизнес-процессы знают, и не только способны их внятно объяснить, но при случае могут и SQL-запрос написать, и от блок-схем в обморок не падают, и даже код понять способны (пусть без деталей, на макроуровне). Но работал и с такими, которые в режиме off-line хотят получать на клиенте данные, расположенные на другой машине.


 
Юрий Зотов ©   (2013-12-26 16:34) [51]

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


 
Kerk ©   (2013-12-26 19:14) [52]


> Юрий Зотов ©   (26.12.13 16:22) [50]
> "Непрограммисты" бывают разные.

Потому и говорю, что "оба правы". Истина, как обычно, где-то посередине :)

> Юрий Зотов ©   (26.12.13 16:34) [51]

Радует наличие взаимопонимания. Я же в общем-то и не говорю, что оно нужно всегда и всем, но кому-то ведь нужно.


 
Юрий Зотов ©   (2013-12-26 23:45) [53]

> Kerk ©   (26.12.13 19:14) [52]
> Радует наличие взаимопонимания.


Меня тоже. Пришло время...
;o))))))))


 
Kerk ©   (2013-12-27 09:49) [54]

Добавил поддержку задания структуры сценария:

Scenario Outline: Add two numbers
 Given I have entered <num1> in calculator
   And I have entered <num2> in calculator
 When I press Add
 Then the result should be <sum> on the screen
 
 Examples:
   | num1 | num2 | sum |
   |  1   |  2   |  3  |
   |  4   |  5   |  9  |
   |  3   |  1   |  4  |

То есть вместо пачки похожих сценариев, можно задать структуру сценария и табличку с данными. В результате такая структура будет развернута в несколько сценариев - на сколько данных в таблице хватит.

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


 
Kerk ©   (2013-12-27 20:58) [55]

Я был бы, кстати, очень благодарен, если бы нашлись добровольцы проверить хотя бы компилируемость демо-проекта в версиях Delphi от 2010 и выше. Пока что проверялось только в XE и XE5.


 
Kerk ©   (2013-12-28 10:54) [56]

Добавил поддержку "питоновских" "многострочных строк"

Feature: Spam Filter

Scenario: Blacklist
 Given I have a blacklist:
     """
     m@mail.com
     123@mail.com
     """
   And I have empty inbox
 When I receive an email from "m@mail.com"
 Then my inbox is empty


А так же разрешил комментарии после объявления Feature

Feature: Calculator
 In order to avoid silly mistakes
 As a math idiot
 I want to be told the sum of two numbers


Scenario: Add two numbers
 Given I have entered 50 in calculator
   And I have entered 50 in calculator
 When I press Add
 Then the result should be 100 on the screen


Пожалуй, это все, чего я пока от DelphiSpec хочу. Сосредоточусь на тестировании :)


 
картман ©   (2013-12-28 14:45) [57]

XE3 компилирует. А что такое DUnitTestRunner? нинашел


 
Kerk ©   (2013-12-28 14:54) [58]


> картман ©   (28.12.13 14:45) [57]

Это из DUnit. Оно есть в поставке Delphi, но во время установки ты мог эти галки снять.


 
Kerk ©   (2013-12-28 14:55) [59]

А за тест спасибо! Найти бы еще кого-то с D2010.


 
картман ©   (2013-12-28 15:25) [60]


> Это из DUnit.

в путях не было.
Было б неплохо при "Run" подгружать данные из поменявшихся файлов feature.


 
Дмитрий Белькевич   (2013-12-28 21:43) [61]

Пробую на 2010 собрать. Не могу найти DUnitTestRunner. Я не уверен, что в 2010-м он был. У меня еще есть XE3, то в нем есть.


 
Дмитрий Белькевич   (2013-12-28 21:47) [62]

RegularExpressions тоже нет.


 
Kerk ©   (2013-12-28 21:48) [63]

Неужто там DUnit в поставке не было? Или модуль иначе назывался? Попробуй, пожалуйста, пустой проект DUnit создать и посмотреть, что там в .dpr


 
Kerk ©   (2013-12-28 21:50) [64]

О как. Если регэкспов нет, то беда. Придется считать, что оно работает начиная с Delphi XE.

Спасибо!


 
Дмитрий Белькевич   (2013-12-28 21:58) [65]

SplitString нет и еще, видимо того-сего. Так что гляди - стоит ли допиливать или считать как XE+.
Интересно, возможно применил бы где-нибудь, есть мысли. Но уже, наверно, когда на XE5 переползем...


 
Kerk ©   (2013-12-29 22:57) [66]

Промежуточный итог
http://roman.yankovsky.me/?p=1355



Страницы: 1 2 вся ветка

Текущий архив: 2014.07.20;
Скачать: CL | DM;

Наверх




Память: 0.6 MB
Время: 0.008 c
2-1379272373
vasa777
2013-09-15 23:12
2014.07.20
unrar


15-1388121833
Jeer
2013-12-27 09:23
2014.07.20
Все - дед!


15-1388061775
audiofeel
2013-12-26 16:42
2014.07.20
Что можно использовать вместо bass.dll в Windows 8 ?


15-1387710416
Пит
2013-12-22 15:06
2014.07.20
Чайник долго не нагревается!


2-1379405814
TInteger
2013-09-17 12:16
2014.07.20
Как использовать потоки для быстрого чтения текстового файла?