XCode включает XCTest, который подобен OCUnit, платформа поблочного тестирования Objective C, и имеет полную поддержку выполнения находящихся в XCTest модульных тестов как часть процесса сборки Вашего проекта. Поддержка поблочного тестирования XCode описана в Обзор XCode: Используя Модульные тесты .
Назад в XCode 2 дня, я записал ряд сообщений блога о том, как выполнить некоторые общие задачи с поблочным тестированием XCode:
Несмотря на использование OCUnit, а не XCTest, понятия являются в основном тем же.
Наконец, я также записал несколько сообщений о том, как тестам записи на пользовательские интерфейсы Какао; путем Какао структурировано, делает его относительно простым, потому что Вы не должны вращать цикл событий или что-либо как этот в большинстве случаев.
Это позволяет сделать разработку через тестирование для не только Ваш код образцового уровня, но также и Ваш уровень контроллера и даже код уровня представления.
Большинство методов Python, которые изменяют контейнер в -place return Нет
- применение принципа разделения команд и запросов . (Python всегда достаточно прагматичен в отношении вещей, поэтому некоторые мутаторы действительно возвращают полезное значение, когда его получение в противном случае было бы дорогостоящим или беспорядочным - метод pop
- хороший пример этого прагматизма - но это определенно исключение, а не правило, и вот '
None
оценивается как False
, а в python функция, которая ничего не возвращает, предполагается, что вернула None
.
Если вы набираете:
>> print u.append(6)
None
Tadaaam :)
, потому что метод .append
возвращает None
, поэтому not None
оценивается как True
. Python при ошибке обычно вызывает ошибку:
>>> a = ()
>>> a.append(5)
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
a.append(5)
AttributeError: 'tuple' object has no attribute 'append'
Он изменяет список на месте и возвращает Нет
. Нет
оценивается как ложь.
На самом деле он возвращает Нет
>>> print u.append(6)
None
>>> print not None
True
>>>