Arduino:
Написание тестов

Как это сделать:

#include <Arduino.h>
#include <unity.h>

void setUp(void) {
// подготовка перед тестом
}

void tearDown(void) {
// очистка после теста
}

void test_led_builtin_pin_number(void) {
    TEST_ASSERT_EQUAL(13, LED_BUILTIN);
}

void test_led_state_high(void) {
    digitalWrite(LED_BUILTIN, HIGH);
    TEST_ASSERT_EQUAL(digitalRead(LED_BUILTIN), HIGH);
}

void setup() {
    UNITY_BEGIN();
    RUN_TEST(test_led_builtin_pin_number);
    RUN_TEST(test_led_state_high);
    UNITY_END();
}

void loop() {
    // Обычно пусто в режиме тестирования
}

Вывод:

.
.
OK

Глубокое погружение

Исторический контекст: Тестирование на Arduino появилось позже, чем в разработке программного обеспечения, и было менее распространённым из-за взаимодействия с аппаратурой. Альтернативы: Ручное тестирование или более сложные фреймворки для тестирования, такие как Google Test. Детали реализации: Обычно мы используем библиотеку вроде ArduinoUnit или AUnit. Размещаем тесты в setup() и оставляем loop() пустым, так как тесты запускаются один раз.

Смотрите также