2014-11-27 1 views
1

Вдохновленный this выпуск на objc.io Я решил попробовать BDD в своем новом проекте. Вот моя проблема: я хочу проверить, что MYCredentialStorage каким-то образом сохраняет учетные данные, которые я прошу хранить, а именно, что при следующем запуске приложения я получаю те же учетные данные. MYCredentialStorage использует брелок, поэтому я мог высмеять его и убедиться, что вызываются функции SecItemAdd или SecItemUpdate, но я не должен проверять (или знать) MYCredentialStorage личные методы, не так ли?
Я уверен, что я не единственный, кто столкнулся с этой проблемой, поэтому я прошу совета, так как я очень новичок в BDD. Спасибо заранее.Рекомендации по BDD для iOS необходимо

+2

Взгляните на другую статью из той же проблемы с objc.io - зависимость: http://www.objc.io/issue-15/dependency-injection.html. В принципе, вы можете ввести макет брелка в 'MYCredentialStorage' (но, возможно, вам понадобится создать оболочку для методов' SecItem' *). –

+1

Я согласен с @ MichałCiuba - нет общего способа выразить, что элемент будет сохраняться между выполнением вашего приложения. Если вы идете по маршруту DI, я бы сделал то, что он сказал. Если вы не делаете DI, я бы не стеснялся насмехаться над хранилищем брелка или вашими частными методами. Я был бы явным в названии теста, чтобы точно выразить свои ожидания. –

+0

Спасибо, если бы я мог принять оба ваши комментария в качестве ответа. Я закончил тем, что использовал инъекцию конструктора и издевательский брелок. – dariaa

ответ

1

Из комментариев

Михал Чуба писал:

Взгляните на другую статью из той же objc.io вопроса - инъекции зависимостей: objc.io/issue-15/dependency- injection.html. В принципе, вы можете ввести макет брелка в MYCredentialStorage (но, возможно, вам понадобится создать оболочку для методов SecItem *).

Бен Flynn писал:

Я согласен с @ MichałCiuba - нет универсального способа, чтобы выразить, что пункт будет сохраняться между выполнением вашего приложения. Если вы идете по маршруту DI, я бы сделал то, что он сказал. Если вы не делаете DI, я бы не стеснялся насмехаться над хранилищем брелка или вашими частными методами. Я был бы явным в названии теста, чтобы точно выразить свои ожидания.