10
Dennis Lewandowski media computing group Unit-Testing mit Xcode Dennis Lewandowski

Unit-Testing mit Xcodefilename=UnitTesting.… · Unit-Testing • Funktionalität von Code sicherstellen • Vorteile • “Saubere Umgebung” • Methoden unabhängig testen •

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Unit-Testing mit Xcodefilename=UnitTesting.… · Unit-Testing • Funktionalität von Code sicherstellen • Vorteile • “Saubere Umgebung” • Methoden unabhängig testen •

Dennis Lewandowskimedia computing group

Unit-Testing mit XcodeDennis Lewandowski

Page 2: Unit-Testing mit Xcodefilename=UnitTesting.… · Unit-Testing • Funktionalität von Code sicherstellen • Vorteile • “Saubere Umgebung” • Methoden unabhängig testen •

Dennis Lewandowskimedia computing group

Überblick

1. Unit-Testing2. SenTestingKit3. Demo4. Debugging

2

Page 3: Unit-Testing mit Xcodefilename=UnitTesting.… · Unit-Testing • Funktionalität von Code sicherstellen • Vorteile • “Saubere Umgebung” • Methoden unabhängig testen •

Dennis Lewandowskimedia computing group

Unit-Testing

• Funktionalität von Code sicherstellen• Vorteile

• “Saubere Umgebung”• Methoden unabhängig testen• automatisches Testen

• Nachteile• zusätzlicher Programmieraufwand• Einarbeitung in Testumgebung nötig

3

Page 4: Unit-Testing mit Xcodefilename=UnitTesting.… · Unit-Testing • Funktionalität von Code sicherstellen • Vorteile • “Saubere Umgebung” • Methoden unabhängig testen •

Dennis Lewandowskimedia computing group

SenTestingKit

• Open source testing framework• Wird mit Xcode installiert• Seit Xcode4 integrierter Bestandteil der IDE

4

Page 5: Unit-Testing mit Xcodefilename=UnitTesting.… · Unit-Testing • Funktionalität von Code sicherstellen • Vorteile • “Saubere Umgebung” • Methoden unabhängig testen •

Dennis Lewandowski media computing group

SenTesting Aufbau// ExampleTest.h

#import <SenTestingKit/SenTestingKit.h>#import <UIKit/UIKit.h>

@interface ExampleTest : SenTestCase {}

// ExampleTest.m

@implementation ExampleTest

-(void)setUp{// wird vor jedem Test aufgerufen! [super setUp];}

-(void)tearDown{// wird nach jedem Test aufgerufen! [super tearDown];}

-(void)testExistanceOfObjects{

// Beispiel für einen TestSTAssertTrue(YES, @"Logic is inverted");

}

5

Page 6: Unit-Testing mit Xcodefilename=UnitTesting.… · Unit-Testing • Funktionalität von Code sicherstellen • Vorteile • “Saubere Umgebung” • Methoden unabhängig testen •

Dennis Lewandowskimedia computing group

Assertions

• STAssertTrue/STAssertFalse• Hat das Argument den Wert true/false?

• STFail• Lässt einen Test automatisch scheitern

• STAssertEquals• Prüft auf Gleichheit

• STAssertEqualObjects• STAssertNoThrow• STAssertNotNil

6

Page 7: Unit-Testing mit Xcodefilename=UnitTesting.… · Unit-Testing • Funktionalität von Code sicherstellen • Vorteile • “Saubere Umgebung” • Methoden unabhängig testen •

Dennis Lewandowskimedia computing group

SenTestingKit in XCode3

• Project > New Target• Cocoa > Unit Test Bundle Target

• File > New File• Cocoa > Objective C test case class

7

Page 8: Unit-Testing mit Xcodefilename=UnitTesting.… · Unit-Testing • Funktionalität von Code sicherstellen • Vorteile • “Saubere Umgebung” • Methoden unabhängig testen •

Dennis Lewandowskimedia computing group

DEMO

8

Page 9: Unit-Testing mit Xcodefilename=UnitTesting.… · Unit-Testing • Funktionalität von Code sicherstellen • Vorteile • “Saubere Umgebung” • Methoden unabhängig testen •

Dennis Lewandowskimedia computing group

Debugging (Xcode3)

9

• Tests werden beim Build-Durchlauf ausgeführt• Zum Debuggen muss getrickst werden!

• Mac OS: http://chanson.livejournal.com/120740.html• iOS: http://hiediutley.com/2011/03/08/xcode3-debugging-

ios-unit-tests/

Page 10: Unit-Testing mit Xcodefilename=UnitTesting.… · Unit-Testing • Funktionalität von Code sicherstellen • Vorteile • “Saubere Umgebung” • Methoden unabhängig testen •

Dennis Lewandowskimedia computing group

Vielen Dank.

10