swift и Xcode — предотвращают выполнение тестов на реальном устройстве

#swift #unit-testing #testing

Вопрос:

итак, в настоящее время мне нужно немного почиститься — я делаю много вещей с помощью HealthKit… У меня есть куча тестов, которые являются «настоящими» тестами, но затем у меня есть куча тестов, в которых я использую тестовый код только для генерации значений, потому что я обычно тестирую на симуляторах, и если вам нужен график, вам нужна целая куча исторических значений, например.

поэтому, конечно, я нажал не на ту кнопку — и я просто заполнил свое реальное устройство поддельными данными HealthKit. К счастью, он помечен, поэтому в настоящее время я создаю что-то, чтобы удалить все это…

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

Комментарии:

1. Стандартный тест для симулятора против устройства не работает?

2. Я не знаю, что такое стандартный тест

3. Можете ли вы просто издеваться над healthkit, чтобы никогда не редактировать его содержимое по-настоящему?

Ответ №1:

Вы можете найти это полезным:

Состояние платформы целевой среды

Вы бы сделали что-то подобное в своем модульном тесте:

     func testExample() throws {
        #if targetEnvironment(simulator)
            // whatever your assertions are
        #else
            // doing nothing here
        #endif
    }
 

Комментарии:

1. это именно то, что я искал — спасибо!