2014-10-03 8 views
5

Ich habe ein einfaches Reich Objekt wie folgt:iOS-Tests mit realm.io funktioniert nicht

@interface Person : RLMObject 
@property NSString *name; 
@end 

RLM_ARRAY_TYPE(Person) 
  • ich bereits die "Target-Mitgliedschaft" für mein Testprojekt

aktiviert jetzt möchte ich etwas mit realm.io auf diese Weise testen:

#import <XCTest/XCTest.h> 
#import "Person.h" 

@interface PersonTests : XCTestCase 
@end 

@implementation PersonTests 

- (void)setUp {[super setUp];} 
- (void)tearDown {[super tearDown];} 
- (void)testFooBar 
{ 
    // !!! the test crashes right here!!!! 
    Person *person = [[Person alloc] init]; 


    person.name = @"foobar"; 

    RLMRealm *realm = [RLMRealm defaultRealm]; 

    [realm beginWriteTransaction]; 
    [realm addObject:person]; 
    [realm commitWriteTransaction]; 

    ...... 
} 

... aber die Test Abstürze in der ersten Zeile (Person * Pers on = [[Person alloc] init];) mit dem folgenden Fehler

*** app aufgrund nicht abgefangene Ausnahme 'RLMException', Grund beenden:

Does 'object von RLMObject ableiten müssen' Weiß jemand, was ich falsch mache? Ich bin dankbar für jeden Hinweis !!

+0

Hey Marco, könntest du mehr von deinem Code teilen? Ich habe gerade versucht, und es hat gut funktioniert https://dl.dropboxusercontent.com/u/10116/Screen%20Shot%202014-10-03%20at%2010.57.58%20AM.png – yoshyosh

+0

Hallo yoshyosh danke für Ihre schnelle Antwort. In meinem normalen Projektziel funktioniert alles einwandfrei, aber nicht im Testziel (Unit Test). Also, wenn Sie versuchen, Ihren Code in einem XCTestCase zu kopieren, funktioniert es auch? –

+1

Ja, alles passiert für mich https://www.dropbox.com/s/a31qjgdqx1jjxot/Screen%20Shot%202014-10-03%20at%202.29.08%20PM.png?dl=0 Können Sie Ihren Code teilen ? – yoshyosh

Antwort

2

ich den gleichen Fehler aufweisen, und nach 4 Stunden löschen, klonen, sauber, neu installieren Schoten, wiederholen ... was für mich ist:

Podfile

link_with 'MyProject', 'MyProjectTests' 

#common pods such as CocoaLumberjack 

pod 'Realm', '0.89.0' 

target 'MyProjectTests', exclusive: true do 
    pod 'Realm/Headers' 
end 

Testfile

#import <UIKit/UIKit.h> 
#import <XCTest/XCTest.h> 
#import <Realm/Realm.h> 
#import "RealmObjectSubclass.h" 

- (void)setUp { 
    [super setUp]; 
    NSString *resourcePath = [NSBundle bundleForClass:[self.class]].resourcePath; 
    NSString *testRealPath = [NSString stringWithFormat:@"%@.test", resourcePath]; 
    [RLMRealm setDefaultRealmPath:testRealPath]; 
} 
+0

Die 'Realm/Header'-Methode von _pod hat für mich funktioniert. – zim

Verwandte Themen