2015-12-24 3 views
1

Я искал в Интернете способ издеваться над объектом CLBeacon, чтобы проверить один из моих классов. Все, что я могу найти, связано с COMockito, который совместим только с Objective-c.Mock CLBeacon Object in Swift

Все, что мне нужно, - это создать модный CLBeacon и установить его основные младшие и UUID-значения. Проблема в том, что эти параметры доступны только для чтения.

Любая идея о том, что я мог сделать, чтобы иметь mock CLBeacon с параметрами, которые я установил?

ответ

2

Я не уверен, почему я всегда забываю о NSCoding, но вы можете обрабатывать объекты CLBeacon с использованием синтаксиса KVO. Я, наконец, получил модульное тестирование, работая с CLBeacon следующим образом:

let mockUUID = NSUUID(UUIDString: uuidString) 
    let testBeacon = CLBeacon() 
    testBeacon.setValue(testMajor, forKey: "major") 
    testBeacon.setValue(testMinor, forKey: "minor") 
    testBeacon.setValue(mockUUID, forKey: "proximityUUID") 
    testBeacon.setValue(CLProximity.Far.rawValue, forKey: "proximity") 
+0

@ShEsKo, этот ответ работал на вас? – Vramin

+0

Извините за поздний ответ, я просто попробовал, и он, похоже, не успешно изменил основные, второстепенные и значения UUID. Когда я пытаюсь напечатать объект CLBeacon, он показывает, что для всех его значений установлено значение null. Я поместил код, который вы поделили в функции setUp(), я делаю что-то неправильно? – ShEsKo

+0

Действительно, я делал что-то глупое: P Теперь он отлично работает! Спасибо @Vramin !!! – ShEsKo