Download presentation
Presentation is loading. Please wait.
Published byJulia Rico Iglesias Modified over 6 years ago
3
Urnik 09.00 – 10.30 Unit testing, TDD DUnit, DUnit2, DUnitX, TestInsight 10.30 – 11.00 odmor 11.00 – 12.30 Unit testing v resničnem svetu, mocking
4
Preizkušanje enot
5
»Unit« Testing »unit« <> »unit«
»unit« = »enota« = majhen samostojen del programa razred
6
Zakaj? Odpornost proti napakam Olajšano predelovanje
Testiranje robnih pogojev Dokumentacija Dobra zasnova programov
7
Kdaj? Pred spreminjanjem programa Med programiranjem Pred commitom
V build serverju Med izdelavo release verzije
8
TDD Najprej test, nato koda
repeat WriteATest(); WatchItFail(); WriteTheCode(); WatchTestPass(); until false;
9
Kako? Čim manjši del funkcionalnosti Le en test pravilnosti
Izogibamo se if in case Pripravi, pokliči, preveri Najprej pogosti primeri, nato robni Preverimo proženje izjem Preverimo vse možne poti Medsebojno neodvisni preizkusi
10
Ogrodja
11
DUnit [JUnit] Juanco Anez Od 2005 del Delphija
Čarovnika za izdelavo projekta in testnega primera Grafično in tekstovno izvajalno okolje
12
API TTestCase Setup TearDown RegisterTest CheckXXXX ExpectedException
13
Izvajanje for i := FirstTest to LastTest do begin testCase := TMyTestCase.Create; try testCase.Setup; RunTestCase(testCase, i); finally testCase.Teardown; end; finally testCase.Free; end; end;
14
DUnit2 [DUnit] Peter McNab Združljiv
15
Izboljšave Testira »puščanje« pomnilnika XML reporter Obsežnejši API
Hierarhični testi Testiranje programov (simulacija interakcije) GUIAutomation Hitrejše izvajanje
16
Izvajanje testCase := TMyTestCase.Create; try for i := FirstTest to LastTest do begin testCase.Setup; RunTestCase(testCase, i); finally testCase.Teardown; end; end; finally testCase.Free; end;
17
DUnitX Moderna zasnova Vincent Parrett (Final Builder)
18
Atributi [TestFixture] [Setup], [TearDown]
[SetupFixture], [TearDownFixture] [Test], [TestCase] [RepeatTest] [Ignore] [Category]
19
API Assert.XXXX Assert.WillRaise
20
TestInsight Integrirani grafični poganjalnik za DUnit, DUnit2, DUnitX
Vgrajen v Delphi Samodejno izvajanje testov
21
Od teorije k praksi …
22
Mocking
23
Odvisni razredi
24
Lažni razredi
25
Dependency Injection Inversion of Control (IoC)
Običajno: Razred izdela primerke razredov, ki jih uporablja Obrnjeno (IoC): Razredu nastavimo (injection) primerke razredov, ki jih uporablja
26
Primer type ILogger = interface procedure Log(const msg: string); end; TTestedClass = class strict private FLogger: ILogger; public property Logger: ILogger read FLogger write FLogger;
27
Delphi Mocks Vincent Parrett (DUnitX)
Avtomatska izdelava lažnih razredov TStub TMock Osnovano na vmesnikih + RTTI
28
Preizkušamo lahko tudi drugače
29
Načini preizkušanja Preizkušanje enot Integracijsko preizkušanje
Regresijsko preizkušanje Aplikacijsko preizkušanje TestComplete DUnit + OpenCTF DUnit2
30
Vprašanja?
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.