Реализация простых модульных тестов с Objective-C - PullRequest
1 голос
/ 02 декабря 2011

Я недавно полюбил юнит-тестирование после знакомства с идеей в программировании на Ruby. Я знал, что в XCode есть предпочтение «Включить модульные тесты», поэтому я попробовал его. Во-первых, было очень трудно найти документацию для фреймворка, а во-вторых, было сложно добавить модульные тесты в инструмент командной строки Foundation. Со всеми его отдельными схемами и целями и т. Д.

Это заставило меня задуматься о написании чрезвычайно минимального и простого для включения модуля модульного тестирования, в основном для образовательных целей.

Моя идея заключается в том, что вы бы написали метод и методы запуска и очистки, начиная с теста. Тогда я бы написал 5-6 функций assert. (Как и большинство фреймворков) Тогда в main () вы бы сказали что-то вроде:

[MyAppTests test];

Или что-то подобное. И тогда все методы тестирования будут запущены, и ошибки или успехи будут зарегистрированы. Тогда я мог бы опираться на это в будущем.

Мои вопросы: как можно реализовать, чтобы вы могли запускать все методы, начиная с тестирования в Objective-C, используя Foundation и, возможно, стандартную библиотеку C? И какой дизайн будет оптимальным / минимальным для такой вещи?

1 Ответ

1 голос
/ 02 декабря 2011

Используйте Objective-C Runtime Reference, чтобы увидеть, как получить списки имен методов. Затем вы можете отфильтровать методы настройки и очистки или включить только методы, начинающиеся, например, с «test». Я почти уверен, что это то, что делает встроенный фреймворк SenTest внутри.

http://developer.apple.com/library/mac/#documentation/cocoa/Reference/ObjCRuntimeRef/Reference/reference.html

Когда я регулярно использую функции C, подобные этим, я часто предпочитаю заключать их в служебный класс или, при необходимости, в категорию.

...