Comments 5
Не хочу показаться вечно недовольным занудой, но в интернете полно примеров, как протестировать код сложения чисел, конкатенации или разворота строк, вычисления факториалов и чисел Фибоначи и тому подобных элементарных вещей. Хотелось бы посмотреть на более приближенный к реальности пример юниттеста. Например, тест для кода который будет использоватся для работы с вебсирвисом и DB, с изоляцией от этих внешних сущностей при помощи OCMock. У автора нет в планах такой статьи?
+3
Внимание, не наступите на «стандартные» грабли!
Если вы где-то в коде используете main bundle (вызовы
В результате код типа
Если вы где-то в коде используете main bundle (вызовы
[NSBundle mainBundle]
или ситуации, когда при передаче nil
в качестве параметра, метод использует main bundle), то скорее всего получите неожиданные ошибки, связанные с тем, что эти методы вернут bundle, стандартный для тестов — в нем нет ваших ресурсов и файлов.В результате код типа
[[NSBundle mainBundle] pathForResource:name ofType:extension]
в тестах вернет nil
, даже если путь и тип ресурса верны и все хорошо в самом приложении. Чтобы этого избежать, берите bundle от какого-то конкретного класса ([NSBundle bundleForClass:]
). Если вы разрабатываете под iOS, то можете использовать любой класс «собственного производства», т.к. bundle для них всех все равно один.+1
как дебажить unit tests, созданные на основе SenTestingKit?
0
Последний загружает в себя наш тестовый бандл, находит там классы-наследники SenTestCase и дергает за метод setUp в начале, tearDown в конце, а между ними он вызывает все методы, название которых начинается со слова «test».
Маленькое уточнение.
setUp и tearDown вызываются до и после выполнения КАЖДОГО метода название которого начинается со слова «test»
Вот пруф:
Conveniently, you can add a pair of methods to a test suite class that are called before and after each test case method is invoked: setUp and tearDown.
0
Sign up to leave a comment.
Юнит-тесты в Cocoa