Ich erstellte OCUnit Test in Übereinstimmung mit "iPhone Development Guide". Hier ist die Klasse I zu testen will:OCUnit & NSBundle
// myClass.h
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
@interface myClass : NSObject {
UIImage *image;
}
@property (readonly) UIImage *image;
- (id)initWithIndex:(NSUInteger)aIndex;
@end
// myClass.m
#import "myClass.m"
@implementation myClass
@synthesize image;
- (id)init {
return [self initWithIndex:0];
}
- (id)initWithIndex:(NSUInteger)aIndex {
if ((self = [super init])) {
NSString *name = [[NSString alloc] initWithFormat:@"image_%i", aIndex];
NSString *path = [[NSBundle mainBundle] pathForResource:name ofType:@"png"];
image = [[UIImage alloc] initWithContentsOfFile:path];
if (nil == image) {
@throw [NSException exceptionWithName:@"imageNotFound"
reason:[NSString stringWithFormat:@"Image (%@) with path \"%@\" for current index (%i) wasn't found.",
[name autorelease], path, aIndex]
userInfo:nil];
}
[name release];
}
return self;
}
- (void)dealloc {
[image release];
[super dealloc];
}
@end
Und mein Unit-Test (LogicTests Ziel):
// myLogic.m
#import <SenTestingKit/SenTestingKit.h>
#import <UIKit/UIKit.h>
#import "myClass.h"
@interface myLogic : SenTestCase {
}
- (void)testTemp;
@end
@implementation myLogic
- (void)testTemp {
STAssertNoThrow([[myClass alloc] initWithIndex:0], "myClass initialization error");
}
@end
Alle notwendigen Rahmenbedingungen, "myClass.m" und Bilder hinzugefügt Ziel. Aber auf Build habe ich einen Fehler:
[[myClass alloc] initWithIndex:0] raised Image (image_0) with path \"(null)\" for current index (0) wasn't found.. myClass initialization error
Diese Code (Initialisierung) funktioniert einwandfrei in der Anwendung selbst (Hauptziel) und später zeigt richtiges Bild. Ich habe auch meinen Projektordner (build/Debug-iphonesimulator/LogicTests.octest/
) überprüft - es gibt LogicTests
, Info.plist
und notwendige Bilddateien (image_0.png
ist einer von ihnen).
Was ist los?
Gebäude aus der kpower-Lösung, ich kam mit dem Follow-up [Xcode: TEST vs DEBUG Präprozessormakros] (http://stackoverflow.com/questions/6748087/xcode-test-vs-debug-preprocessor-macros/6763597#6763597). – ma11hew28