Có một vài đối tượng về điều này, nhưng tôi chưa tìm được giải pháp nào có thể làm việc cho Swift (Xcode 6.2).Làm thế nào để kiểm tra Dữ liệu chính đúng trong Swift
Để kiểm tra các lớp dữ liệu lõi được hỗ trợ trong Swift, tôi tạo các bối cảnh đối tượng được quản lý mới mà sau đó tôi đưa vào các lớp của mình.
//Given
let testManagedObjectContext = CoreDataTestComposer.setUpInMemoryManagedObjectContext()
let testItems = createFixtureData(testManagedObjectContext) as [TestItem]
self.itemDateCoordinator.managedObjectContext = testManagedObjectContext
//When
let data = self.itemDateCoordinator.do()
//Then
XCTAssert(data.exists)
Sự cố xuất phát từ việc chuyển MOC được tạo trong bài kiểm tra cho lớp đang làm. Vì các lớp thực thể được đặt tên không gian, nên Core Data sẽ không tìm nạp lớp con ManagedObject thích hợp của bạn và thay vào đó hãy quay lại một tập hợp NSManagedObject
. Khi lặp hoặc làm bất cứ điều gì với các đối tượng này (trong lớp của bạn sẽ là một mảng các mục kiểm tra ([TestItem]
).
Ví dụ, lớp vi phạm ItemDateCoordinator
sẽ thực hiện vòng lặp này (sau khi kéo dữ liệu liên quan từ NSFetchRequest
) "
for testItem in testItems {
testItem.doPart(numberOfDays: 10)
}
sẽ cho kết quả:
fatal error: NSArray element failed to match the Swift Array Element type
Ngoài ra, tôi đã đi qua một tập hợp các thông tin mà không nhiều của một câu trả lời chắc chắn:
- Để truyền thực thể khi tạo chúng, tôi đã sử dụng giải pháp theo Jesse, nhưng điều đó không hoạt động trên phạm vi thử nghiệm lớn hơn.
- A solution has been posted on another question có liên quan đến việc trao đổi các lớp trong thời gian chạy, nhưng điều đó đã không làm việc cho tôi với thừa kế thực thể.
- Có phương pháp nào khác để kiểm tra đối tượng của bạn bằng Dữ liệu cốt lõi trong trường hợp này không? Bạn làm nó như thế nào?
Bạn đang phải đối mặt với một vấn đề mỉa mai? –