За комментарий в шаблоне по умолчанию для XCTestCase
относительно setUp
:
Put setup code here; it will be run once, before the first test case.
Однако в XCTestCase.h
комментарий выше setUp
указывает иначе:
Setup method called before the invocation of each test method in the class.
Чтобы подтвердить фактическое поведение, я помещаю NSLog
внутри setUp
, чтобы подсчитать, сколько раз он был вызван:
static int count = 0;
- (void)setUp
{
[super setUp];
count++;
NSLog(@"Call Count = %d", count);
}
Это привело к тому, что метод setUp
вызывается перед каждым тестовым методом (подтверждение комментария на XCTestCase.h
).
Я хотел использовать метод setUp
для создания объектов test/mock один раз (например, для установки тестового стека Core Data). Создание их снова и снова было бы интенсивным и потенциально очень медленным.
Итак,
1) Что на самом деле предназначено для setUp
? Разумеется, разработчики не создают в нем объекты снова и снова?
2) Как создать эти объекты только один раз в XCTestCase
?