Мне тут написали, что мол "вы пишете в формате лекции, а хотелось бы в формате семинара".
Попробую в формате семинара. (Не закончено)
Итак.
Тезисы:
1. тест должен быть линейным
2. похожим на тест-кейс
3. читаться человеком
4. оперировать терминами предметной области
Попробую теперь сделать законченный пример в "классическом RAD-стиле".
Ну и в некотором смысле "в стиле XP" - http://18delphi.blogspot.ru/2013/04/blog-post.html
Там где что-то непонятно, что делать - буду писать Assert.
Пример доступен тут - https://sourceforge.net/p/rumtmarc/code-0/HEAD/tree/trunk/Blogger/GUITests/Chapter0/
Сделаем форму TForm1 с кнопками Button1, Button2, Button3 и строкой ввода Edit1.
Сделаем это для пущей "рекламы" и "новизны подхода" на FM.
Итак наша форма:
И её fmx:
Пока читатели могут просмотреть sketch кода. И комментарии к коммитам.
Попробую в формате семинара. (Не закончено)
Итак.
Тезисы:
1. тест должен быть линейным
2. похожим на тест-кейс
3. читаться человеком
4. оперировать терминами предметной области
Попробую теперь сделать законченный пример в "классическом RAD-стиле".
Ну и в некотором смысле "в стиле XP" - http://18delphi.blogspot.ru/2013/04/blog-post.html
Там где что-то непонятно, что делать - буду писать Assert.
Пример доступен тут - https://sourceforge.net/p/rumtmarc/code-0/HEAD/tree/trunk/Blogger/GUITests/Chapter0/
Сделаем форму TForm1 с кнопками Button1, Button2, Button3 и строкой ввода Edit1.
Сделаем это для пущей "рекламы" и "новизны подхода" на FM.
Итак наша форма:
unit Unit1; interface uses System.SysUtils, System.Types, System.UITypes, System.Rtti, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Dialogs, FMX.StdCtrls, FMX.Edit; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; Edit1: TEdit; Run: TButton; procedure Button1Click(Sender: TObject); procedure RunClick(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation uses Script.Engine ; {$R *.fmx} procedure TForm1.Button1Click(Sender: TObject); begin Edit1.Text := (Sender As TButton).Text; end; procedure TForm1.RunClick(Sender: TObject); begin TScriptEngine.RunScript('FirstScript.script'); end; end.
И её fmx:
object Form1: TForm1 Left = 0 Top = 0 Caption = 'Form1' ClientHeight = 480 ClientWidth = 640 FormFactor.Width = 320 FormFactor.Height = 480 FormFactor.Devices = [dkDesktop, dkiPhone, dkiPad] DesignerMobile = False DesignerWidth = 0 DesignerHeight = 0 DesignerDeviceName = '' DesignerOrientation = 0 object Button1: TButton Height = 22.000000000000000000 Position.X = 24.000000000000000000 Position.Y = 24.000000000000000000 TabOrder = 0 Text = 'Button1' Width = 80.000000000000000000 OnClick = Button1Click end object Button2: TButton Height = 22.000000000000000000 Position.X = 24.000000000000000000 Position.Y = 64.000000000000000000 TabOrder = 1 Text = 'Button2' Width = 80.000000000000000000 OnClick = Button1Click end object Button3: TButton Height = 22.000000000000000000 Position.X = 24.000000000000000000 Position.Y = 104.000000000000000000 TabOrder = 2 Text = 'Button3' Width = 80.000000000000000000 OnClick = Button1Click end object Edit1: TEdit TabOrder = 3 Position.X = 136.000000000000000000 Position.Y = 24.000000000000000000 Width = 100.000000000000000000 Height = 22.000000000000000000 KillFocusByReturn = False end object Run: TButton Height = 22.000000000000000000 Position.X = 24.000000000000000000 Position.Y = 144.000000000000000000 TabOrder = 4 Text = 'Run' Width = 80.000000000000000000 OnClick = RunClick end end
Пока читатели могут просмотреть sketch кода. И комментарии к коммитам.
Комментариев нет:
Отправить комментарий