Presentation is loading. Please wait.

Presentation is loading. Please wait.

Urnik – Unit testing, TDD DUnit, DUnit2, DUnitX, TestInsight – odmor – Unit testing v resničnem svetu, mocking.

Similar presentations


Presentation on theme: "Urnik – Unit testing, TDD DUnit, DUnit2, DUnitX, TestInsight – odmor – Unit testing v resničnem svetu, mocking."— Presentation transcript:

1

2

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?


Download ppt "Urnik – Unit testing, TDD DUnit, DUnit2, DUnitX, TestInsight – odmor – Unit testing v resničnem svetu, mocking."

Similar presentations


Ads by Google