2014-10-03 4 views
5

Mam prosty sfera obiekt tak:iOS testy z realm.io nie działa

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

RLM_ARRAY_TYPE(Person) 
  • już umożliwiło "Target Membership" dla mojego projektu badawczego

Teraz lubię testować coś z realm.io w ten sposób:

#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]; 

    ...... 
} 

... ale test zawiesza się w pierwszej linii (osoba * osoba na = [[Osoba alloc] startowych];) z następującym błędem

*** Kończenie aplikację spowodowane nieprzechwyconego wyjątku 'RLMException', powód: 'objectClass musi pochodzić z RLMObject'

robi Czy ktoś wie, co robię źle? Jestem wdzięczny za podpowiedź !!

+0

Hej, Marco, mógłbyś udostępnić więcej swojego kodu? Właśnie próbowałem tego i działało dobrze https://dl.dropboxusercontent.com/u/10116/Screen%20Shot%202014-10-03%20at%2010.57.58%20AM.png – yoshyosh

+0

Cześć yoshyosh dzięki za szybką odpowiedź. W moim normalnym celu projektu wszystko działa dobrze, ale nie w celu testowym (test jednostkowy). Więc jeśli spróbujesz skopiować kod w XCTestCase, czy to też działa? –

+1

Tak, wszystko przechodzi dla mnie https://www.dropbox.com/s/a31qjgdqx1jjxot/Screen%20Shot%202014-10-03%20at%202.29.08%20PM.png?dl=0 Czy możesz udostępnić swój kod ? – yoshyosh

Odpowiedz

2

Miałem ten sam błąd, a po 4 godzinach usuwania, klon, czyste, ponownego zainstalowania strąków, powtórz ... co działa dla mnie jest:

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

Metoda _pod "Realm/Headers'_ pracowała dla mnie. – zim