Изучаю Unit тесты. Тестирую сохранение в реалм. Создаю экземпляр класса со своими параметрами, и записываю в реалм. Но в реалм записываются не созданные параметры, а стоковые, прописанные в классе. Почему так, не могу понять. Ниже код классов и кусок кода из тестов, который нам нужен:
class Human: Object {
@objc var name: String = "1"
@objc var yearOfBirth: Int = 1
convenience init(name: String, yearOfBirth: Int){
self.init()
self.name = name
self.yearOfBirth = yearOfBirth
}
}
class RealmService {
static let shared = RealmService()
private let realm = try! Realm()
//Функция получения всех объектов
func getAllTask() -> Results<Human>{
return realm.objects(Human.self)
}
//Функция записи в БД реалма
func addTask(task: Human) {
try! realm.write {
realm.add(task)
}
}
//Функция удаления из БД реалма
func deleteTask(task: Object) {
try! realm.write {
realm.delete(task)
}
}
}
И код теста:
//проверка сохранения в реалм
describe("save") {
it("save objects in database correctly") {
//создание объекта
let human = Human(name: "Anton", yearOfBirth: 1995)
//сохранение human в реалм
RealmService.shared.addTask(task: human)
//проверка что human сохранился в базу данных
let realm = try! Realm()
let humanFromDatabase = realm.objects(Human.self).last
expect(humanFromDatabase?.name) == human.name
expect(humanFromDatabase?.yearOfBirth) == human.yearOfBirth
}
}
А получаем в итоге вот такие ошибки:
expect(humanFromDatabase?.name) == human.name ---------------> expected to equal <Anton>, got <1>
expect(humanFromDatabase?.yearOfBirth) == human.yearOfBirth -------> expected to equal <1995>, got <1>
По консоли и lldb видно что целиком объект считывается нормально, а вот отдельные его параметры считываются почему то неправильно