2014-10-03 20 views
5

Tôi có một đối tượng lĩnh vực đơn giản như thế này:iOS-thử nghiệm với realm.io không hoạt động

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

RLM_ARRAY_TYPE(Person) 
  • Tôi đã bật tính năng "Target Membership" cho dự án thử nghiệm của tôi

Bây giờ tôi muốn thử nghiệm điều gì đó với realm.io theo cách này:

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

    ...... 
} 

... nhưng kiểm tra gặp sự cố trong dòng đầu tiên (Person * pers trên = [[Người alloc] init];) với các lỗi sau

*** Chấm dứt ứng dụng do ngoại lệ còn tự do 'RLMException', lý do: 'objectClass phải xuất phát từ RLMObject'

Liệu có ai biết tôi đang làm gì sai không? Tôi rất biết ơn vì bất kỳ gợi ý nào !!

+0

Xin chào Marco, bạn có thể chia sẻ thêm mã của mình không? Tôi chỉ cố gắng này và nó làm việc tốt https://dl.dropboxusercontent.com/u/10116/Screen%20Shot%202014-10-03%20at%2010.57.58%20AM.png – yoshyosh

+0

Hi yoshyosh nhờ trả lời nhanh chóng của bạn. Trong mục tiêu dự án bình thường của tôi, mọi thứ hoạt động tốt nhưng không phải trong mục tiêu thử nghiệm (kiểm thử đơn vị). Vì vậy, nếu bạn cố gắng sao chép mã của bạn trong một XCTestCase hiện nó hoạt động không? –

+1

Vâng, mọi thứ trôi qua đối với tôi https://www.dropbox.com/s/a31qjgdqx1jjxot/Screen%20Shot%202014-10-03%20at%202.29.08%20PM.png?dl=0 bạn có thể chia sẻ mã của bạn ? – yoshyosh

Trả lời

2

Tôi đã có những lỗi tương tự, và sau 4 giờ xóa, nhân bản, sạch sẽ, cài đặt lại vỏ, lặp lại ... những gì làm việc cho tôi là:

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

Các _pod 'Realm/Headers'_ phương pháp làm việc cho tôi. – zim

Các vấn đề liên quan