Как добавить и реализовать, настраивают флаги в Автоинструментах?

Принятие Вас делает больше, чем просто добавление этого класса (например, у Вас есть асинхронные запросы, и так далее продолжающиеся также), я рекомендовал бы библиотеку как Прототип или jQuery.

Это сделает примерно все, что необходимо будет сделать (включая это) очень простой.

Так скажем, у Вас есть jQuery на Вашей странице теперь, Вы могли использовать код как это для добавления имени класса к элементу (на загрузке, в этом случае):

$(document).ready( function() {
  $('#div1').addClass( 'some_other_class' );
} );

Выезд jQuery браузер API для другого материала.

5
задан gotgenes 18 August 2009 в 18:53
поделиться

3 ответа

Посмотрите, как реализованы макросы STAssert в OCUnit (SenTestingKit, включенный в Xcode).

В вашем собственном пакете модульного теста вы можете реализовать category на NSObject для добавления методов, таких как гипотетический -shouldBeValid , который затем будет вызывать тот же механизм проверки / сбоя, что и макрос STAssert сейчас.

если вы плохо знакомы с препроцессором C ...

Вероятно, вам также придется использовать #define , чтобы ваши макросы передавали правильные значения для __ FILE __ ] и __ LINE __ , когда ваши тесты BDD не работают. Например, вам может потребоваться сделать что-то вроде этого:

@interface NSObject (BehaviorDrivenDevelopment)
- (void)shouldBeValidInFile:(const char *)file line:(int)line;
@end

#define shouldBeValid  shouldBeValidInFile:__FILE__ line:__LINE__

Таким образом, вы могли бы вызвать его так:

[[someObject methodUnderTest:argument] shouldBeValid];

Код, который видит компилятор, будет следующим:

[[someObject methodUnderTest:argument] shouldBeValidInFile:__FILE__ line:__LINE__];

Макросы препроцессора __ FILE __ и __ LINE __ будут расширены до текущего файла и строки в исходном тестовом файле.

Таким образом, если у вас все-таки есть неудачный тест, он может передать соответствующую информацию в SenTestingKit для отправки обратно в Xcode. Ошибка будет правильно отображаться в окне результатов сборки, и щелкнув ее, вы перейдете к точному месту сбоя в ваших тестах.

Я должен был убедиться, что один из ключевых файлов заголовков C ++ (включенных в другие части кода) имел следующее:

#ifdef HAVE_CONFIG_H
#    include "config.h"
#endif

config.h содержит все новые определения, созданные с помощью AC_DEFINE , поэтому этот файл должен быть включен в части, которые проверяют, определено ли (или не определено) определение макроса, созданное этим маршрутом.

Это заняло много времени и помогло мне преодолеть разочарование; Я могу только надеяться, что документальное подтверждение этого объяснения спасет кого-то еще от той же участи.

6
ответ дан 14 December 2019 в 04:44
поделиться

Вы определенно на правильном пути. Поначалу автоинструменты могут показаться очень сложными, но одним из преимуществ является то, что существуют тысячи проектов, которые уже сделали то, что вы хотите сделать. Все, что вам нужно сделать, это найти их.

Вот ссылка на поиск кода Google для AC_ARG_DISABLE . Сходи с ума.

1
ответ дан 14 December 2019 в 04:44
поделиться

Чтобы сборка не пыталась компилироваться в подкаталоге ctemplate, вам нужно сделать что-то вроде:

if CTEMPLATE
SUBDIRS += ctemplate
endif

в Makefile.am

1
ответ дан 14 December 2019 в 04:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: