За комментарий в шаблоне по умолчанию для 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?