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()
пустым, так как тесты запускаются один раз.
Смотрите также
- Библиотека ArduinoUnit: https://github.com/mmurdoch/arduinounit
- Библиотека AUnit: https://github.com/bxparks/AUnit
- Введение в модульное тестирование: https://www.arduino.cc/en/Guide/UnitTesting