2015-06-23 16 views
6

Tôi có hai mục tiêu appappTests. Ngoài ra tôi có lớp Wine và khung Realm và 'RealmSwift' được liên kết với hai mục tiêu đó. Không có ngoại lệ Khi tôi sử dụng lớp Wine trong traget app.Lớp học được liên kết nhiều lần trong mục tiêu

Nhưng khi tôi muốn chạy thử nghiệm như

appTests.swift (22 dòng)

import UIKit 
import XCTest 
import RealmSwift 

class appTests: XCTestCase { 
func testRealmAdd() { 
     NSFileManager.defaultManager().removeItemAtPath(Realm.defaultPath, error: nil) 
     let realm = Realm() 
     let wine = Wine() // when error occure 
     wine.photo = "photo" 
     wine.desc = "description" 
     wine.raiting = 3.0 

     realm.write {() -> Void in 
      realm.add(wine) 
     } 

     let result = realm.objects(Wine) 
     print("\(result)") 
     XCTAssertTrue(result.count == 1, "There should be one element") 
    } 
} 

Wine.swift (10 lines)

import UIKit 
import RealmSwift 

class Wine: Object { 

    dynamic var desc: String = "" 
    dynamic var photo: String = "" 
    dynamic var raiting: Double = 0 

} 

Sau đó một ngoại lệ xuất hiện tại dòng 8 ở appTests.swift

Các lớp con RLMObject có cùng tên không thể được bao gồm hai lần trong cùng một mục tiêu. Vui lòng đảm bảo rằng 'Wine' chỉ được liên kết một lần với mục tiêu hiện tại của bạn.

Tôi đã làm rõ ràng DerivedData và dự án. Bạn có thể đề nghị nơi tôi nên tìm?

EDIT sau khi bình luận nhgrif

Ok có vẻ như một ngoại lệ được tăng sớm hơn, phù hợp 7. Mà bây giờ được đánh dấu trong mã nhờ nhgrif.

+0

Dòng nào là dòng 8? Điều này có thể không liên quan gì đến mã nguồn, mà thay vào đó là cách bạn liên kết các khung công tác với các dự án. – nhgrif

+0

@nhgrif Tôi thêm những khung như hướng dẫn nói https://realm.io/docs/swift/latest/#getting-started, và sau đó tôi đánh dấu 'Realm.framework',' RealmSwift.framework' và 'Wine.swift' như được kiểm tra cho mục tiêu 'appTests' trong ** Target Membership ** –

Trả lời

1

Wine.swift chỉ nên ở trong app và không được appTests. Bao gồm cả hai kết quả trong số appTests có hai lớp có tên là Wine (app.WineappTests.Wine), không phải là thứ mà Realm hỗ trợ. Miễn là Winepublic (hoặc trong Swift 2.0, @Testable), bạn có thể truy cập nó từ appTests mà không bao gồm nó trong các mục tiêu appTests bởi vì appTests liên kết trong app.

+0

Ngoài ra tôi phải công khai mọi func và property sẽ được sử dụng trong kiểm tra. Tôi còn phải thêm 'ứng dụng nhập' nữa. Tôi không thể chờ Swift 2.0 :) –

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